<?xml version="1.0" encoding="utf-8" standalone="yes"?><?xml-stylesheet type="text/xsl" href="/index.xsl"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>./techtipsy</title><link>https://ounapuu.ee/tags/storage/</link><description>Recent content on ./techtipsy, a blog written by Herman Õunapuu.</description><generator>Hugo -- gohugo.io</generator><language>en-GB</language><managingEditor>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</managingEditor><webMaster>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</webMaster><lastBuildDate>Sun, 15 Feb 2026 22:00:00 +0200</lastBuildDate><atom:link href="https://ounapuu.ee/tags/storage/index.xml" rel="self" type="application/rss+xml"/><item><title>BTRFS disk errors to fall asleep to</title><link>https://ounapuu.ee/posts/2026/02/15/btrfs/</link><pubDate>Sun, 15 Feb 2026 22:00:00 +0200</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2026/02/15/btrfs/</guid><description>Inspired by a true story.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2026/02/15/btrfs/media/cover_hu_6ec175dedffba3f0.jpg" width="1200" height="630" alt="BTRFS disk errors to fall asleep to" /><p>This is inspired by a dying Seagate Portable 4TB hard drive, and brought to you by 15 minutes of vibe engineering.</p>
<p><a href="/btrfs-disk-errors-to-fall-asleep-to/index.html">Enjoy.</a></p>
<p>Starting the RMA process on the Seagate website is one of the most difficult things I&rsquo;ve done lately, and half the links
there look like a legitimate phishing attempt.</p>









<figure class="center">
  <a href="/posts/2026/02/15/btrfs/media/lol.png">
    <img src="/posts/2026/02/15/btrfs/media/lol_hu_9382c15dfd593c89.webp"
     width="1000"
     height="340"
     loading="lazy"
     decoding="async"
     alt="lol.">

  </a>
  <figcaption class="center">lol.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2026/02/15/btrfs/media/lmao.png">
    <img src="/posts/2026/02/15/btrfs/media/lmao_hu_60043490600a4347.webp"
     width="1000"
     height="694"
     loading="lazy"
     decoding="async"
     alt="lmao.">

  </a>
  <figcaption class="center">lmao.</figcaption>
</figure>

<p>By the time I got the RMA created, I&rsquo;ve run out of time and energy to follow on with this process.</p>
<p>I guess it&rsquo;s a great way to make your RMA rates stay low, though!</p>
]]></content:encoded></item><item><title>I built the worst Jellyfin media server</title><link>https://ounapuu.ee/posts/2026/01/16/worst-media-server/</link><pubDate>Fri, 16 Jan 2026 06:00:00 +0200</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2026/01/16/worst-media-server/</guid><description>This experiment is brought to you by absurd memory prices.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2026/01/16/worst-media-server/media/cover_hu_dd22e2bc1424d67c.jpg" width="1200" height="630" alt="I built the worst Jellyfin media server" /><p>LattePanda V1. <a href="/posts/2023/02/28/lattepanda-v1/">It&rsquo;s been a while, huh?</a></p>
<p>I had it as a backup server <a href="/posts/2023/06/10/how-i-blew-up-my-backup-server/">(which I blew up)</a>.</p>
<p>Then it got promoted to&hellip; <a href="/posts/2024/12/11/wireguard-backup-fleet/">a backup server.</a> But
then <a href="/posts/2024/12/11/wireguard-backup-fleet/media/lattepanda-psu-failure.png">its PSU blew up.</a></p>
<p>Then it was waiting for some cool ideas at <a href="https://kaurpalang.com/">a potato enthusiast.</a></p>
<p>Now it&rsquo;s back in my hands.</p>
<p><a href="/posts/2025/11/18/lattepanda-iota/">Unlike its modern counterpart,</a> the LattePanda V1 is a flawed single board
computer.</p>
<p>It&rsquo;s slow.</p>
<p>It&rsquo;s unstable if you connect power hungry USB devices to it.</p>
<p>It needs some cooling, but I&rsquo;m too cheap to buy a properly designed heat sink for it.</p>
<p>It has display quirks.</p>
<p>It only has a slow 100 Mbps Ethernet link.</p>
<p>It only seems to work reliably on one side. Not even joking, the &ldquo;heat sink down&rdquo; configuration is the only one that
works for me.</p>
<p><a href="https://libreelec.tv/">LibreELEC</a> failed to play back any videos on it properly. The videos would play for 10 seconds,
and then it would hang, no matter the encoding or hardware acceleration settings.</p>
<p>With hardware prices being wonky again, I decided to give this board a last chance of being useful. If new hardware is
absurdly expensive, then it makes perfect sense to use what you have, no matter how slow or crummy it might be. Reduce,
reuse, and only <em>then</em> recycle.</p>
<p>That&rsquo;s when I decided to run a Jellyfin server off of it. Transcoding is out of the question, but serving media files
over the network should still be quick enough, right?</p>
<p>For this experiment, I
used <a href="/posts/2025/10/06/datablocks-white-label-drives/">one of the 18 TB hard drives that I&rsquo;ve covered earlier.</a>
Just the single one, no redundancy here. This one drive is probably about 10x the cost of the LattePanda V1 itself,
making it a perfectly reasonable choice.</p>
<p>For ease of troubleshooting, debugging and guaranteed eventual reinstallation, I put Fedora Server on an 128 GB USB 3.0
flash drive by Samsung. <a href="/posts/2024/12/02/linux-on-usb/">Risky move, I know,</a> but as you might have noticed, this whole
build is everything <em>but</em> reasonable. That left the eMMC storage as the perfect candidate for storing cache and service
related files.</p>
<p>Cooling is solved by a random server heat sink slapped on the bottom of the LattePanda, with a few critical
components like the CPU making contact with thick and soft thermal pads. The whole thing is fastened using velcro strips
that I cut to a thin size in the middle so that I can route it between the components on the PCB and within the heat
sink fins. The edges of the heat sink are covered with some painters&rsquo; tape that I had around to avoid shorting anything
out on the board, because those parts on the board contain all sorts of metal bits and pins that have power going
through them. I&rsquo;m actually quite happy with that mount!</p>









<figure class="center">
  <a href="/posts/2026/01/16/worst-media-server/media/lattepanda-temps.png">
    <img src="/posts/2026/01/16/worst-media-server/media/lattepanda-temps_hu_84c5210842d31066.webp"
     width="1000"
     height="683"
     loading="lazy"
     decoding="async"
     alt="All things considered, the janky cooling setup is holding up very well. The 100 degree peaks are sensor/measurement
errors.">

  </a>
  <figcaption class="center">All things considered, the janky cooling setup is holding up very well. The 100 degree peaks are sensor/measurement
errors.</figcaption>
</figure>

<p>I&rsquo;ve been experimenting with Podman again after Docker kept doing weird things with the v29 release, and I&rsquo;ve been happy
with the results, so that&rsquo;s what I used on the LattePanda V1 as well. I slapped Jellyfin on it, threw in some test files
and gave it a go.</p>
<p>Navigating the UI feels a bit slow at times, but it&rsquo;s not really noticeable on an LG smart TV with a really laggy user
interface.</p>
<p>Actual video playback that requires no transcoding works quite well, at least for smaller media sizes.</p>
<p>Technically, you can do transcoding on this and even utilize the tiny little integrated GPU in it, but the results are
not usable. With smaller files it might be usable, but in one test I saw 7-8 FPS transcoding speeds and the server
struggling to keep up, with CPU usage locked at 100%.</p>
<p>If we ignore all the downsides, then the LattePanda V1 can actually be a usable media server. Serving files off of a big
drive does not require a lot of resources, and for that the LattePanda V1 is a solid choice. It also uses only a few
watts of power on its own, so you can keep it on 24/7 guilt-free. In this build, the hard drive itself is actually the
most power hungry component by a long shot (about 2/3 of the total power budget).</p>
<p>The 2 GB of memory is <em>juuuuuuuust</em> enough for this setup.</p>









<figure class="center">
  <a href="/posts/2026/01/16/worst-media-server/media/lattepanda-memory-usage.png">
    <img src="/posts/2026/01/16/worst-media-server/media/lattepanda-memory-usage_hu_ad0b4de22af0ece1.webp"
     width="1000"
     height="683"
     loading="lazy"
     decoding="async"
     alt="Totally usable.">

  </a>
  <figcaption class="center">Totally usable.</figcaption>
</figure>

<p>As of writing this post, it has been running for about a week, and it&rsquo;s been fine. I intend to keep it running in a
drawer for as long as possible just to see what will die first.</p>
<p>Will it be the eMMC storage?</p>
<p>The USB flash drive holding the operating system?</p>
<p>The expensive hard drive?</p>
<p>The power supply?</p>
<p>The thin velcro strips holding the cooling together?</p>
<p>My patience?</p>
<p>Don&rsquo;t worry, I have backups. <em>Well</em>, backups of the important bits. I&rsquo;m ready to lose
data <a href="/posts/2026/01/14/raid0/">again.</a></p>
<h2 id="2026-01-22-update">
  <a class="heading-anchor" href="#2026-01-22-update">2026-01-22 update<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Okay, it was <em>too</em> bad of an idea.</p>
<p>The LattePanda V1 would occasionally just&hellip; stop.</p>









<figure class="center">
  <a href="/posts/2026/01/16/worst-media-server/media/lattepanda-is-kill.png">
    <img src="/posts/2026/01/16/worst-media-server/media/lattepanda-is-kill_hu_26193b745dd0bf59.webp"
     width="1000"
     height="507"
     loading="lazy"
     decoding="async"
     alt="Oops, it died.">

  </a>
  <figcaption class="center">Oops, it died.</figcaption>
</figure>

<p>From what I gathered by accident, it&rsquo;s likely that the USB port containing the operating system would flake out and
result in the system not being able to run any tools that are not in memory. I tried to move the installation to the
eMMC drive, but after failing multiple times due to the display not working, or the system deciding to shut down
randomly, I gave up on it. For now.</p>
<p>Guess I&rsquo;ll have to use it in a solar-powered website project. ¯\_(ツ)_/¯</p>
]]></content:encoded></item><item><title>Running cheap and crappy USB hard drives in RAID0 is indeed a very terrible idea</title><link>https://ounapuu.ee/posts/2026/01/14/raid0/</link><pubDate>Wed, 14 Jan 2026 10:00:00 +0200</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2026/01/14/raid0/</guid><description>I know, shocker.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2026/01/14/raid0/media/cover_hu_4c078f678ba01857.jpg" width="1200" height="630" alt="Running cheap and crappy USB hard drives in RAID0 is indeed a very terrible idea" /><p>Some of my dumb experiments result in interesting findings and unexpected successes.</p>
<p>Some end up with very predictable failures.</p>
<p>What happens when you have two <a href="/posts/2020/08/22/disk-is-ok/">crappy</a> USB hard drives running <code>btrfs</code><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> in <code>raid0</code>
mode?
Nothing, until something goes wrong on one of the drives.</p>
<p>Here&rsquo;s what it looks like:</p>
<pre tabindex="0"><code>[188574.681476] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114512, gen 0
[188574.681479] BTRFS warning (device dm-1): csum failed root 719 ino 1133 off 175546368 csum 0x899d8def expected csum 0x6bd987b6 mirror 1
[188574.681481] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114513, gen 0
[188574.681484] BTRFS warning (device dm-1): csum failed root 719 ino 1133 off 175550464 csum 0xab3e9209 expected csum 0xb9ea310f mirror 1
[188574.681486] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114514, gen 0
[188574.681489] BTRFS warning (device dm-1): csum failed root 719 ino 1133 off 175554560 csum 0xc2f14e0c expected csum 0x503c7709 mirror 1
[188574.681491] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114515, gen 0
[188574.681494] BTRFS warning (device dm-1): csum failed root 719 ino 1133 off 175558656 csum 0x6ae8a7c9 expected csum 0xb4c26691 mirror 1
[188574.681496] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114516, gen 0
[188574.681498] BTRFS warning (device dm-1): csum failed root 719 ino 1133 off 175562752 csum 0x97db9766 expected csum 0xbe2e8040 mirror 1
[188574.681500] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114517, gen 0
[188574.681503] BTRFS warning (device dm-1): csum failed root 719 ino 1133 off 175566848 csum 0x86568469 expected csum 0x863fbb4a mirror 1
[188574.681505] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114518, gen 0
[189615.784048] BTRFS warning (device dm-1): csum failed root 719 ino 1181 off 23457792 csum 0xb19058fa expected csum 0x5d11a400 mirror 1
[189615.784086] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114519, gen 0
[189615.784119] BTRFS warning (device dm-1): csum failed root 719 ino 1181 off 23461888 csum 0x256ea900 expected csum 0xabd1eafb mirror 1
[189615.784133] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114520, gen 0
[189615.784153] BTRFS warning (device dm-1): csum failed root 719 ino 1181 off 23465984 csum 0x7b10000b expected csum 0x647fd7bf mirror 1
[189615.784165] BTRFS error (device dm-1): bdev /dev/dm-0 errs: wr 0, rd 0, flush 0, corrupt 5114521, gen 0
[189615.784178] BTRFS warning (device dm-1): csum failed root 719 ino 1181 off 23470080 csum 0xef791959 expected csum 0x175f7adc mirror 1
</code></pre><p>But in a way, this setup worked exactly as expected.</p>
<p>If you want to have a lot of storage on the cheap, or simply care about performance, or both, then running disks in
RAID0 mode is a very sensible thing to do. I used it mainly for having a place where I can store a bunch of data
temporarily, such a full disk images or data that I can easily replace.</p>
<p>Now I can test that theory out!</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I feel like I need to point out that this is not the fault of <code>btrfs</code>. When you instruct a file system to provide
zero redundancy, then that is what you will get.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Testing two 18 TB white label SATA hard drives from datablocks.dev</title><link>https://ounapuu.ee/posts/2025/10/06/datablocks-white-label-drives/</link><pubDate>Mon, 06 Oct 2025 06:00:00 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2025/10/06/datablocks-white-label-drives/</guid><description>It has been 0 days since the last change to my home server.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2025/10/06/datablocks-white-label-drives/media/cover_hu_62398be5795c9b74.jpg" width="1200" height="630" alt="Testing two 18 TB white label SATA hard drives from datablocks.dev" /><p>This post is <em><strong>NOT</strong></em> sponsored, the products were bought with my hard-earned money.</p>
<p>I&rsquo;ve been running a full SSD storage setup for a few years in my home server and I&rsquo;ve been happy with it, except for the
storage anxiety that I get with running small pools of fast storage, which is why I started looking at how the hard
drive market is doing.</p>
<p>Half of tech YouTube has been sponsored by companies like ServerPartDeals, so they were one of the first
places I looked at, but they seem to only operate within the US and the shipping+taxes destroy any price advantages from
ordering there to Estonia (which is in Europe).</p>
<p>At some point I stumbled upon <a href="https://datablocks.dev/">datablocks.dev</a>, which seems to operate within a similar niche,
but in Europe and on a much smaller scale. What caught my eye were their white label hard drive offerings. Their website
has a good explanation on
the <a href="https://datablocks.dev/blogs/news/white-label-vs-recertified-drives">differences between recertified and white label hard drives.</a>
In short: white label drives have no branding, have no or very low number of power-on hours, may have small scratches or
dents, but are in all other aspects completely functional and usable.</p>
<p>White label drives also have a price advantage compared to branded recertified drives. Here&rsquo;s one example with 18 TB
drives, the recertified one is 16.7% more expensive compared to the white label one, and the only obvious difference
seems to be the sticker on the drive. I highly suspect that the white label one is also manufactured by Seagate based on
the physical similarities.</p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/pricing.png">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/pricing_hu_557f72882995374.webp"
     width="711"
     height="673"
     loading="lazy"
     decoding="async"
     alt="The price difference between a recertified and a white label drive.">

  </a>
  <figcaption class="center">The price difference between a recertified and a white label drive.</figcaption>
</figure>

<p>I took some time to think things over and compared the pricing of various drives. The drives were all competitively
priced between each other, with the price per terabyte hovering around 13 EUR/TB, so it didn&rsquo;t matter much which drive
size you picked, you&rsquo;d still get a pretty solid deal. It was also a better deal compared to using an WD Elements/My Book
drive of the same size.</p>
<p>I decided to go with two 18 TB hard drives. I considered buying the 20 TB or 22 TB capacities, but decided to go with 18
TB because it&rsquo;s the largest single hard drive that I can easily and quickly buy a replacement for in the form of a WD
Elements/My Book drive.</p>
<p>The stock on <code>datablocks.dev</code> is quite volatile, the drives are in stock when new batches arrive, but they can also
quickly go out of stock. I saw this live with the 22 TB hard drives, one day there are 35 left, the next day there can
be 7 left, and then only one lone drive.</p>
<p>At the time of writing, the 18 TB model that I bought is out of stock, so my choice to go with a slightly smaller but
more easily replaceable one is validated.</p>
<p>For those that have followed my blog for a while will know that I&rsquo;m a huge fan of all-SSD server
builds, <a href="https://www.jeffgeerling.com/blog/2024/radxas-sata-hat-makes-compact-pi-5-nas">especially this one by Jeff Geerling that I still consider building from time to time.</a>
If I dislike noise, higher power usage and slower performance, then why did I get the hard drives? It&rsquo;s simple, really:
I now have an actual closet that I can stash my home server in, meaning that noise isn&rsquo;t that big of a worry, and as
long as my home server takes about the same amount of power as my refrigerator or dishwasher, then that&rsquo;s fine.
SSD prices still haven&rsquo;t gone down as much as I&rsquo;ve hoped over the years, so the all-SSD build ideas that I have are way
outside my budget.</p>
<p>The drives arrived in a reasonable time window. The packaging was adequate, although I was slightly concerned with the
cardboard box showing signs of something hitting it hard. The drives were packaged within sealed antistatic bags, and
with ample bubble wrap surrounding them.</p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-1.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-1_hu_a9dba89172bc3c4.webp"
     width="751"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="The cardboard box with a slight dent.">

  </a>
  <figcaption class="center">The cardboard box with a slight dent.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-2.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-2_hu_7dbb3525f71376b8.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Plenty of paper inside to prevent the drives from flying around.">

  </a>
  <figcaption class="center">Plenty of paper inside to prevent the drives from flying around.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-3.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-3_hu_391e44195be9b89b.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Drives were wrapped in bubble wrap, with the drives themselves also separated with a few layers of it for maximum
protection.">

  </a>
  <figcaption class="center">Drives were wrapped in bubble wrap, with the drives themselves also separated with a few layers of it for maximum
protection.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-4.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/packaging-4_hu_2f0b8482d4f6a778.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Drives in anti-static bags.">

  </a>
  <figcaption class="center">Drives in anti-static bags.</figcaption>
</figure>

<p>Just as described, the drives did have slight scratches and very minor dents in them, but in all other aspects they
looked like new.</p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/drive-0.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/drive-0_hu_d83039e15059e17b.webp"
     width="751"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="One of the hard drives. It does have slight dents and scratches, matching the description.">

  </a>
  <figcaption class="center">One of the hard drives. It does have slight dents and scratches, matching the description.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/drive-1.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/drive-1_hu_ae9c6c9ec935f236.webp"
     width="751"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="The second drive had a more noticeable bump in it.">

  </a>
  <figcaption class="center">The second drive had a more noticeable bump in it.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/drive-backside.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/drive-backside_hu_31c6dbfeabd631da.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="The backside of the drives.">

  </a>
  <figcaption class="center">The backside of the drives.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/drive-wd-adapter.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/drive-wd-adapter_hu_12335c95ee248c0e.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Those USB-SATA adapters from shucking are really darn handy now. Adapter courtesy of my brother-in-law.">

  </a>
  <figcaption class="center">Those USB-SATA adapters from shucking are really darn handy now. Adapter courtesy of my brother-in-law.</figcaption>
</figure>

<p>Before putting them to use, I formatted the drives using <code>badblocks</code>. It took a full 24 hours to do a full drive write.
The write performance peaked at 275 MB/s and slowed down to 123 MB/s at the end, which is expected.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/performance.png">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/performance_hu_9faa269c4173536c.webp"
     width="1000"
     height="300"
     loading="lazy"
     decoding="async"
     alt="The performance of the drive during the full drive format.">

  </a>
  <figcaption class="center">The performance of the drive during the full drive format.</figcaption>
</figure>

<p>I also had to choose a larger block size for <code>badblocks</code> because otherwise it could not handle the drive, resulting in
the command
being <code>badblocks -wsv -b 8192 /dev/sdX</code>.</p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/peak-performance.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/peak-performance_hu_ce21ef2456c6c9b3.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="This is what peak jank looks like.">

  </a>
  <figcaption class="center">This is what peak jank looks like.</figcaption>
</figure>

<p>I unfortunately did not save the SMART data from the time I received the drives, but the contents were as expected,
there were no more than a few power on hours and other metrics were OK. Keep in mind that it&rsquo;s also possible to reset
SMART data on a drive so this information cannot be taken at face value.</p>
<p>The drives are noisy, as expected. They run at 7200 RPM and do the usual clicks and clacks that a normal hard drive
does. If this bothers you, <a href="/posts/2021/04/02/tech-tip-1/">use foam to fix it.</a> The soft side of a sponge can work
just as well.</p>
<p>With these drives <a href="/posts/2023/03/26/tiered-storage/">I&rsquo;ve now followed my own advice</a> and tiered my storage: two 1 TB
SSD-s for the things that benefit from good speed and latency (databases, containers), and 18 TB hard drives for
bulk storage, backups and less frequently used data. Coming from an all-SSD build, I expected the performance to drop in
day-to-day operations, but in most cases I cannot tell a difference. My family photos load just fine, media plays back
well, and backups take slightly longer, which isn&rsquo;t noticeable due to them running during the night. Only when I look at
the Prometheus node exporter graphs do I notice that sometimes the server is waiting behind the disks a bit more due to
higher <code>iowait</code>.</p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/iowait.png">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/iowait_hu_62d2f4a247e6e5b1.webp"
     width="1000"
     height="452"
     loading="lazy"
     decoding="async"
     alt="During full backups or disk scrubs, the iowait is more prevalent on graphs (the red part), but that doesn&#39;t seem to
impact my other workloads in a significant way.">

  </a>
  <figcaption class="center">During full backups or disk scrubs, the iowait is more prevalent on graphs (the red part), but that doesn&#39;t seem to
impact my other workloads in a significant way.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/drives-in-use-0.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/drives-in-use-0_hu_734ffb597eff0fec.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="The drives are connected via two WD Elements/My Book USB-SATA adapters, over USB 3.0, and stored right below my ThinkPad
T430, which is proudly running as my home server.">

  </a>
  <figcaption class="center">The drives are connected via two WD Elements/My Book USB-SATA adapters, over USB 3.0, and stored right below my ThinkPad
T430, which is proudly running as my home server.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/drives-in-use-1.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/drives-in-use-1_hu_ed0078e342cbd321.webp"
     width="751"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="I added glue-on rubber feet on the stand to make sure the drives do not accidentally slip off anywhere. It does nothing
to reduce the noise, though, and I&#39;m convinced that it&#39;s actually making the noise worse.">

  </a>
  <figcaption class="center">I added glue-on rubber feet on the stand to make sure the drives do not accidentally slip off anywhere. It does nothing
to reduce the noise, though, and I&#39;m convinced that it&#39;s actually making the noise worse.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/home-server.jpg">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/home-server_hu_116154110711149.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="I&#39;m not proud of the lack of cable management, but this setup works well. Given how often I get new ideas, it doesn&#39;t
make sense to organize this too much anyway.">

  </a>
  <figcaption class="center">I&#39;m not proud of the lack of cable management, but this setup works well. Given how often I get new ideas, it doesn&#39;t
make sense to organize this too much anyway.</figcaption>
</figure>

<p>The power usage did shoot up as a result, roughly 10-20 W. Not ideal, but my whole networking and home server setup is
idling at below 45 W, and I&rsquo;ve
had <a href="/posts/2021/03/17/server-setups-throughout-the-years/">less efficient home servers in the past,</a> so it&rsquo;s not that
big of a deal.</p>









<figure class="center">
  <a href="/posts/2025/10/06/datablocks-white-label-drives/media/setup-power-usage.png">
    <img src="/posts/2025/10/06/datablocks-white-label-drives/media/setup-power-usage_hu_39a1f182a81cdbb4.webp"
     width="1000"
     height="601"
     loading="lazy"
     decoding="async"
     alt="The power usage was elevated while I was formatting and copying files over to the new drives, but after that it&#39;s
stabilized to around 1.2 kWh per day.">

  </a>
  <figcaption class="center">The power usage was elevated while I was formatting and copying files over to the new drives, but after that it&#39;s
stabilized to around 1.2 kWh per day.</figcaption>
</figure>

<p>In this configuration, the drives run quite cool. During formatting on a hot day, I saw them go up to a maximum of 51°C,
but in general use they sit at around 38-42°C.</p>
<p>Overall, I&rsquo;m reasonably happy with the drives. I expect these to last me at least 5 years, and I&rsquo;m probably going to
switch one of the drives out a bit sooner to reduce the risk of a full drive pool failure. They&rsquo;ve made it the first 50
days, so that&rsquo;s good!</p>
<p>Oh, and here&rsquo;s the <code>smartctl -ax</code> output for the disks after running them for about two months:</p>
<ul>
<li><a href="/posts/2025/10/06/datablocks-white-label-drives/media/disk1.txt">disk 1</a></li>
<li><a href="/posts/2025/10/06/datablocks-white-label-drives/media/disk2.txt">disk 2</a></li>
</ul>
<h2 id="2026-02-13-update">
  <a class="heading-anchor" href="#2026-02-13-update">2026-02-13 update<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>6 months later, and my drives are still doing well. <code>smartctl -ax</code> output:</p>
<ul>
<li><a href="/posts/2025/10/06/datablocks-white-label-drives/media/disk1-2026-02-13.txt">disk 1</a></li>
<li><a href="/posts/2025/10/06/datablocks-white-label-drives/media/disk2-2026-02-13.txt">disk 2</a></li>
</ul>
<p>In the meantime, what <em>did</em> die on me was a Seagate Portable 4TB drive that I used mainly for backups. :)</p>
<p>A Latvian blogger that I follow also had a pleasant experience with datablocks.dev,
and <a href="https://blog.kronis.dev/blog/buying-some-drives-from-datablocks">they wrote about it here.</a></p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>hard drives are expected to be slower at the end of the drive because of their design, the platter rotates at 7200
RPM
but the end of the drive is located at the inner tracks of the platter, near the center of the spindle, which results in
a slower effective speed. Math is cool!&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Samsung 870 QVO 4TB SATA SSD-s: how are they doing after 4 years of use?</title><link>https://ounapuu.ee/posts/2025/09/15/samsung-870-qvo/</link><pubDate>Mon, 15 Sep 2025 06:00:00 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2025/09/15/samsung-870-qvo/</guid><description>How much damage can a self-hosting enthusiast do to a quartet of Samsung SSD-s after 4 years?</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2025/09/15/samsung-870-qvo/media/cover_hu_94aa1fcf2fa11da1.jpg" width="1200" height="630" alt="Samsung 870 QVO 4TB SATA SSD-s: how are they doing after 4 years of use?" /><p>I&rsquo;ve been running four Samsung 870 QVO 4TB SATA SSD-s for a while now. They&rsquo;re old enough to be popping up on the
second-hand market, so I thought it would be good to provide a few additional data points for those thinking about
buying one.</p>
<p>Mine have mainly been used in a home server setting, with one also being used as a backup drive at times. I initially
got
these drives because I found the noise that hard drives generated to be unacceptably high in a small apartment. They&rsquo;re
also quite a bit faster than hard drives and use significantly less power.</p>
<p>The drives were manufactured in 2021, two in April, two in June.</p>
<p>Overall, I haven&rsquo;t seen many issues with the drives, and when I
did, <a href="https://www.phoronix.com/news/Samsung-860-870-More-Quirks">it was a Linux kernel issue.</a> These drives are still
performing at the expected speed and at during write-heavy workloads they only drop down to 140-170 MB/s, which is
considerably better than what the cheapest SATA SSD-s can do in the same scenario, those can go a low as 30 MB/s or even
worse.</p>
<p>I did notice that one of the drives reported 4 bad blocks over its lifetime, and oddly enough it&rsquo;s the drive with the
least amount of power-on hours.</p>
<p>The reported SSD lifetime is reported to be around 94%, with over 170+ TB of data written. At this point, the drives are
not even close to
the <a href="https://www.samsung.com/uk/memory-storage/sata-ssd/ssd-870-qvo-sata-3-2-5-inch-4tb-mz-77q4t0bw/">1440 TBW endurance limit that Samsung has published.</a></p>
<p>The price hasn&rsquo;t gone down as much as I&rsquo;ve hoped over the years. At the time I bought the drives, they were roughly 400
EUR a piece, and now they&rsquo;re selling for about 270 EUR a piece. It&rsquo;s still significantly cheaper, but back in 2021-2022
there was more optimism about SSD prices coming down over the years. For comparison, 4TB SSD-s from other manufacturers
and form factors (NVMe, SATA) start from about 190-200 EUR, however I am not fully confident that those perform at the
same level, at least under sustained writes.</p>
<p>For those curious, here&rsquo;s the full <code>smartctl -ax</code> output for all the individual drives.</p>
<ul>
<li><a href="/posts/2025/09/15/samsung-870-qvo/media/S5STNF0R405312K.txt">S5STNF0R405312K</a></li>
<li><a href="/posts/2025/09/15/samsung-870-qvo/media/S5STNF0R407424M.txt">S5STNF0R407424M</a></li>
<li><a href="/posts/2025/09/15/samsung-870-qvo/media/S5STNF0R614596K.txt">S5STNF0R614596K</a></li>
<li><a href="/posts/2025/09/15/samsung-870-qvo/media/S5STNF0R614601K.txt">S5STNF0R614601K</a></li>
</ul>
]]></content:encoded></item><item><title>Lenovo ThinkCentre M900 Tiny: how does it fare as a home server?</title><link>https://ounapuu.ee/posts/2025/06/06/thinkcentre-m900-tiny/</link><pubDate>Fri, 06 Jun 2025 11:00:00 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2025/06/06/thinkcentre-m900-tiny/</guid><description>I was itching for a new project, so I got one.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2025/06/06/thinkcentre-m900-tiny/media/cover_hu_32af048ce8cd1fbc.jpg" width="1200" height="630" alt="Lenovo ThinkCentre M900 Tiny: how does it fare as a home server?" /><p>My evenings of absent-minded local auction site scrolling<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> paid off: I now own
a <a href="https://www.lenovo.com/gb/en/p/desktops/thinkcentre/m-series-tiny/m900-tiny/11tc1mtm900">Lenovo ThinkCentre M900 Tiny.</a></p>
<p>It&rsquo;s relatively old, being manufactured in 2016<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup>, but it&rsquo;s tiny and has a lot of useful life left in it.</p>
<p><a href="https://www.servethehome.com/lenovo-thinkcentre-m900-tiny-project-tinyminimicro-guide/">It&rsquo;s also featured in the TinyMiniMicro series by ServeTheHome.</a></p>
<p>I managed to get it for 60 EUR plus about 4 EUR shipping, and it comes with solid specifications:</p>
<ul>
<li>CPU: Intel i5-6500T</li>
<li>RAM: 16GB DDR4</li>
<li>Storage: 256GB SSD</li>
<li>Power adapter included</li>
</ul>
<p>The price is good compared to similar auctions, but was it worth it?</p>
<p>Yes, yes it was.</p>
<p>I have been running <a href="/posts/2024/10/16/third-times-the-charm/">a ThinkPad T430 as a server for a while now,</a> since
October 2024. It served me well in that role and would&rsquo;ve served me for even longer if I wanted to, but I had an itch
for a project that didn&rsquo;t involve renovating an apartment.<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup></p>









<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/testing-setup.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/testing-setup_hu_ce25c7c29fee65a9.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="When you are in the middle of renovating your living room, but you really want to get on with the server migration.">

  </a>
  <figcaption class="center">When you are in the middle of renovating your living room, but you really want to get on with the server migration.</figcaption>
</figure>

<h2 id="power-usage">
  <a class="heading-anchor" href="#power-usage">Power usage<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>One of my main curiosities was around the power usage. Will this machine beat the laptop in terms of efficiency while
idling and running normal home server workloads? Yes, yes it does.</p>
<p>While booting into Windows 11 and calming down a bit, the lowest idle power numbers I saw were around 8 W. This
concludes the testing on Windows.</p>
<p>On Linux (Fedora Server 42), the idle power usage was around 6.5 W to 7 W. After running <code>powertop --auto-tune</code>, I ended
up getting that down to 6.1 W - 6.5 W. This is much lower compared to the numbers that ServeTheHome got, which were
around 11-13 W (120V circuit). My measurements are made in Europe, Estonia, where we have 240V circuits.</p>









<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/idle-power-linux.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/idle-power-linux_hu_b096580227905f71.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Idle power from the wall on a clean Fedora Server 42 installation (fully headless).">

  </a>
  <figcaption class="center">Idle power from the wall on a clean Fedora Server 42 installation (fully headless).</figcaption>
</figure>

<p>You may be able to find machines where the power usage is even
lower. <a href="https://louwrentius.com/the-raspberry-pi-5-is-no-match-for-a-tini-mini-micro-pc.html">Louwrentius mada an idle power comparison on an HP EliteDesk Mini G3 800</a>
where they measured it at 4 W. That might also be due to other factors in play, or differences in measurement tooling.</p>
<p>During normal home server operation with 5 SATA SSD-s connected (4 of them with USB-SATA adapters), I have observed
power consumption being around 11-15 W, with peaks around 40 W.
On a pure CPU load with <code>stress -c 8</code>, I saw power consumption being around 32 W. Formatting the internal SATA SSD added
5 W to that figure.</p>









<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/power-usage.png">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/power-usage_hu_638aa8d89c25cfaf.webp"
     width="957"
     height="877"
     loading="lazy"
     decoding="async"
     alt="Daily power consumption of my whole home server infrastructure after installing the new server.">

  </a>
  <figcaption class="center">Daily power consumption of my whole home server infrastructure after installing the new server.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/power-usage-active.png">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/power-usage-active_hu_55918f1fb48345fe.webp"
     width="957"
     height="877"
     loading="lazy"
     decoding="async"
     alt="More accurate power usage numbers over 14 days.">

  </a>
  <figcaption class="center">More accurate power usage numbers over 14 days.</figcaption>
</figure>

<h2 id="usb-storage-are-you-crazy">
  <a class="heading-anchor" href="#usb-storage-are-you-crazy">USB storage, are you crazy?<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Yes. But hear me out.</p>
<p>Back in 2021, <a href="/posts/2021/02/08/things-learned-while-self-hosting/">I wrote about USB storage being a very bad idea,</a>
especially on <a href="https://btrfs.readthedocs.io/en/latest/index.html">BTRFS.</a></p>
<p>I&rsquo;ve learned a lot over the years, and BTRFS has received continuous improvements as well.
In <a href="/posts/2024/10/16/third-times-the-charm/">my ThinkPad T430 home server setup,</a> I had two USB-connected SSD-s running
in <em><strong>RAID0</strong></em> for over half a year, and it was completely fine unless you accidentally bumped into the SSD-s.</p>
<p>USB-connected storage <a href="https://knowyourmeme.com/memes/this-is-fine">is fine</a> under the right circumstances:</p>
<ul>
<li>the cables are not damaged</li>
<li>the cables are not at a weird angle or twisted
<ul>
<li>I actually had issues with this point, my very cool and nice cable management resulted in one disk having
connectivity issues, which I fixed by relieving stress on the cables and routing them differently</li>
</ul>
</li>
<li>the connected PC does not have chronic overheating issues</li>
<li>the whole setup is out of the reach of cats, dogs, children and
clumsy <a href="https://www.jeffgeerling.com/blog/2022/cosplaying-sysadmin">sysadmin cosplayers</a></li>
<li>the USB-SATA adapters pass through the device ID and S.M.A.R.T information to the host
<ul>
<li>the device ID part especially is key to avoiding issues with various filesystems (especially ZFS) and storage pool
setups</li>
<li><a href="https://icybox.de/product/externe_speicherloesungen/IB-223U3a-B">the ICY BOX IB-223U3a-B is a good option that I have personally been very happy with</a>,
and it&rsquo;s what I&rsquo;m using in this server build</li>
<li>a lot of adapters (mine included) don&rsquo;t support running SSD TRIM commands to the drives, which might be a concern
<ul>
<li>has not been an issue for over half a year with those ICY BOX adapters, but it&rsquo;s something to keep in mind</li>
</ul>
</li>
</ul>
</li>
<li>you are not using an SBC as the home server
<ul>
<li>even a Raspberry Pi 4 can barely handle one USB-powered SSD
<ul>
<li>not an issue if you use an externally powered drive, or an USB DAS</li>
</ul>
</li>
</ul>
</li>
</ul>









<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-0.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-0_hu_e535336c8ddf5c4a.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="The initial version of the new setup.">

  </a>
  <figcaption class="center">The initial version of the new setup.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-1.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-1_hu_cc106245ab989434.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="I liked how the drives fit on top of the PC here.">

  </a>
  <figcaption class="center">I liked how the drives fit on top of the PC here.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-2.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-2_hu_731027e3582a97e6.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Another angle on the new setup.">

  </a>
  <figcaption class="center">Another angle on the new setup.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-3.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v1-3_hu_49bebb6bec9f0435.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Unfortunately, this mess of cables did not work out at all, with one drive being unstable.">

  </a>
  <figcaption class="center">Unfortunately, this mess of cables did not work out at all, with one drive being unstable.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v2-0.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v2-0_hu_6685bd5f66709a2e.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="Second version of the setup. This one works very well.">

  </a>
  <figcaption class="center">Second version of the setup. This one works very well.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v2-1.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/server-setup-v2-1_hu_4c0691d4a55c87f0.webp"
     width="1000"
     height="751"
     loading="lazy"
     decoding="async"
     alt="The cables are not that neatly organized, but there is much less stress on the connectors, ensuring a more stable
connection.">

  </a>
  <figcaption class="center">The cables are not that neatly organized, but there is much less stress on the connectors, ensuring a more stable
connection.</figcaption>
</figure>

<p>After a full BTRFS scrub and a few days of running, it seems fine. Plus it looks sick as hell with the identical drives
stacked on top. All that&rsquo;s missing are labels specifying which drive is which, but I&rsquo;m sure that I&rsquo;ll get to that
someday, hopefully before a drive failure happens.</p>
<p>In a way, this type of setup best represents what a novice home server enthusiast may end up with: a tiny,
power-efficient PC with a bunch of affordable drives connected.</p>
<h2 id="less-insane-storage-ideas-for-a-tiny-pc">
  <a class="heading-anchor" href="#less-insane-storage-ideas-for-a-tiny-pc">Less insane storage ideas for a tiny PC<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>There are alternative options for handling storage on a tiny 1 liter PC, but they have some downsides that I don&rsquo;t want
to be dealing with right now.</p>
<p>An USB DAS allows you to handle many drives with ease, but they are also damn expensive. If you pick wrong, you might
also end up with one
where the USB-SATA chip craps out under high load, which will momentarily drop all the drives, leaving you with a
massive headache to deal with. Cheaper USB-SATA docks are more prone to this, but I cannot confirm or deny if more
expensive options have the same issue. Running individual drives sidesteps this issue and moves any potential issues to
the host USB controller level.</p>
<p>There is also a distinct lack of solutions that are designed around 2.5&quot; drives only. Most of them are designed around
massive and power-hungry 3.5&quot; drives. I just want to run my 4 existing SATA SSD-s until they crap out completely.</p>
<p>An additional box that does stuff generally adds to the overall power consumption of the setup as well, which I am not a
big fan of. Lowering the power consumption of the setup was the whole point!</p>
<p>I can&rsquo;t rule out testing USB DAS solutions in the future as they do seem handy for adding storage to tiny PC-s and
laptops with ease, but for now I prefer going the individually connected drives route, especially because I don&rsquo;t feel
like replacing my existing drives, they still have about 94% SSD health in them after 3-4 years of use, and new drives
are <em>expensive</em>.</p>
<p>Or you could go full jank
and <a href="https://www.aliexpress.com/item/1005008295170254.html?spm=a2g0o.productlist.main.7.364fgMWRgMWR9z&amp;algo_pvid=4f0d33b6-081c-4883-8ce0-336041cc6652&amp;algo_exp_id=4f0d33b6-081c-4883-8ce0-336041cc6652-6&amp;pdp_ext_f=%7B%22order%22%3A%22116%22%2C%22eval%22%3A%221%22%7D&amp;pdp_npi=4%40dis%21EUR%2156.97%2119.37%21%21%21456.87%21155.34%21%40211b617b17491928533492865e9738%2112000044523063505%21sea%21EE%211639637618%21X&amp;curPageLogUid=uT89CAEm8INP&amp;utparam-url=scene%3Asearch%7Cquery_from%3A">use that one free NVMe slot in the tiny PC to add more SATA ports</a>
or <a href="https://www.aliexpress.com/item/1005008182661050.html?spm=a2g0o.productlist.main.7.3d7d259d5fHEIC&amp;algo_pvid=ff1d4e1e-74a8-4b65-955d-178a3eddcc71&amp;algo_exp_id=ff1d4e1e-74a8-4b65-955d-178a3eddcc71-6&amp;pdp_ext_f=%7B%22order%22%3A%2262%22%2C%22eval%22%3A%221%22%7D&amp;pdp_npi=4%40dis%21EUR%216.80%216.80%21%21%2154.52%2154.52%21%40211b61bb17491929092998623e03e6%2112000044142094508%21sea%21EE%211639637618%21X&amp;curPageLogUid=1ZzPPfnImgoi&amp;utparam-url=scene%3Asearch%7Cquery_from%3A">break out to other devices,</a>
such
as <a href="https://www.aliexpress.com/item/1005006533280553.html?spm=a2g0o.productlist.main.1.47a972a263M66x&amp;algo_pvid=02822dc1-fcb1-4b65-bb91-d022570c6388&amp;algo_exp_id=02822dc1-fcb1-4b65-bb91-d022570c6388-0&amp;pdp_ext_f=%7B%22order%22%3A%22175%22%2C%22eval%22%3A%221%22%7D&amp;pdp_npi=4%40dis%21EUR%2130.20%2128.98%21%21%21242.22%21232.43%21%40211b819117491929449653062e5f37%2112000037555851080%21sea%21EE%211639637618%21X&amp;curPageLogUid=J8ShoCWeAb85&amp;utparam-url=scene%3Asearch%7Cquery_from%3A">a PCIe HBA,</a>
and introduce a lot of clutter to the setup with an additional power supply, cables and
drives.</p>
<p>Or use 3.5&quot; external hard drives with separate power
adapters. <a href="/posts/2021/04/02/tech-tip-1/">It&rsquo;s what I actually tried out back in 2021,</a> but I had some major annoyances
with the noise.</p>
<h2 id="miscellaneous-notes">
  <a class="heading-anchor" href="#miscellaneous-notes">Miscellaneous notes<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Here are some notes on everything else that I&rsquo;ve noticed about this machine.</p>
<p>The PC is quite efficient as demonstrated by the power consumption numbers, and as a result it runs very cool, idling
around 30-35 °C in a ~22-24 °C environment. Under a heavy load, the CPU temperatures creep up to 65-70 °C, which is
perfectly acceptable. The fan does come on at higher load and it&rsquo;s definitely audible, but in my case it runs in a
ventilated closet, so I don&rsquo;t worry about that at all.</p>
<p>The CPU (Intel i5-6500T) is plenty fast for all sorts of home server workloads with its 4 CPU cores and clock speeds of
2.7-2.8 GHz under load.</p>
<p>The UEFI settings offered a few interesting options that I decided to change, the rest are set to default.</p>
<p>There is an option to enable an additional C-state for even better power savings.</p>









<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/c-states.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/c-states_hu_4279997e04c8a1c1.webp"
     width="1000"
     height="439"
     loading="lazy"
     decoding="async"
     alt="C-state options in UEFI settings.">

  </a>
  <figcaption class="center">C-state options in UEFI settings.</figcaption>
</figure>

<p>For home server workloads, it was nice to see the setting to allow you to boot the PC without a keyboard being attached,
found under &ldquo;Keyboardless operation&rdquo; setting. I guess that in some corporate environments disconnected keyboards are
such a common helpdesk issue that it necessitates having this option around.</p>









<figure class="center">
  <a href="/posts/2025/06/06/thinkcentre-m900-tiny/media/keyboardless-operation.jpg">
    <img src="/posts/2025/06/06/thinkcentre-m900-tiny/media/keyboardless-operation_hu_592446f591d2456f.webp"
     width="1000"
     height="427"
     loading="lazy"
     decoding="async"
     alt="Keyboardless operation setting, enabled by default.">

  </a>
  <figcaption class="center">Keyboardless operation setting, enabled by default.</figcaption>
</figure>

<h2 id="closing-thoughts">
  <a class="heading-anchor" href="#closing-thoughts">Closing thoughts<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I just like these tiny PC boxes a lot. They are tiny, fast and have a very solid construction, which makes them feel
very premium in your hands. They are also perfectly usable, extensible and can be an absolute bargain at the right
price.</p>
<p>With solid power consumption figures that
are <a href="https://www.jeffgeerling.com/blog/2024/new-2gb-pi-5-has-33-smaller-die-30-idle-power-savings">only a few watts off of a Raspberry Pi 5</a>,
it might make more sense to get a TinyMiniMicro machine for your next home server. I&rsquo;m definitely very happy with mine.</p>
<h2 id="2025-06-08-update">
  <a class="heading-anchor" href="#2025-06-08-update">2025-06-08 update<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>The USB storage idea was a bit <em>too</em> insane. I saw sporadic errors on random drives, suggesting that there is an issue
with the PC USB ports under long-term use. It wasn&rsquo;t noticeable at all until I explicitly looked at the kernel logs,
just to be safe. Good call on my part.</p>
<p>As a result, I have switched back to <a href="/posts/2024/10/16/third-times-the-charm/">my trusty ThinkPad T430.</a></p>
<p>Some logs that demonstrate the issues, collected using <code>journalctl -o short-precise -k -p 4</code>:</p>
<pre tabindex="0"><code>Jun 08 01:33:32.318310 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:33:32.318603 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:33:32.320109 lilnas kernel: I/O error, dev sdd, sector 1825796880 op 0x0:(READ) flags 0x80700 &gt;
Jun 08 01:33:32.320775 lilnas kernel: I/O error, dev sdd, sector 1825795856 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.321444 lilnas kernel: I/O error, dev sdd, sector 1825794832 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.322078 lilnas kernel: I/O error, dev sdd, sector 1825793808 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.322746 lilnas kernel: I/O error, dev sdd, sector 1825792784 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.323409 lilnas kernel: I/O error, dev sdd, sector 1825791760 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.324049 lilnas kernel: I/O error, dev sdd, sector 1825790736 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.324706 lilnas kernel: I/O error, dev sdd, sector 1825789712 op 0x0:(READ) flags 0x84700 &gt;
Jun 08 01:33:32.324736 lilnas kernel: btrfs_repair_io_failure: 982 callbacks suppressed
Jun 08 01:41:38.201307 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:41:38.201614 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:41:38.201892 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:41:38.202158 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:41:38.202529 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 01:41:38.202814 lilnas kernel: usb 2-5: cmd cmplt err -2
Jun 08 08:33:15.572984 lilnas kernel: usb 2-4: cmd cmplt err -2
</code></pre><div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>well, at least it beats doom-scrolling social media.&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>yeah, I don&rsquo;t like being reminded of being old, too.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>there are a lot of similarities between construction/renovation work and software development, but that&rsquo;s a story
for another time.&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>IODD ST400 review: great idea, good product, terrible firmware</title><link>https://ounapuu.ee/posts/2025/02/14/iodd-st400-review/</link><pubDate>Fri, 14 Feb 2025 06:00:00 +0200</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2025/02/14/iodd-st400-review/</guid><description>I bought and tested a Ventoy-like device that allows you to boot all sorts of installation media and operating systems, all on one device.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2025/02/14/iodd-st400-review/media/cover_hu_1f7948de1c3907ae.jpg" width="1200" height="630" alt="IODD ST400 review: great idea, good product, terrible firmware" /><p>I&rsquo;ve written about <a href="/posts/2024/12/02/linux-on-usb/">abusing USB storage devices</a> in the past, with a passing mention
that I&rsquo;m too cheap to buy an <a href="https://www.iodd.shop/Home">IODD device.</a></p>
<p>Then I bought one.</p>
<p>I&rsquo;ve always liked the promise of tools like <a href="https://www.ventoy.net/en/index.html">Ventoy</a>: you only need to carry the
one storage device that boots anything you want.
Unfortunately <a href="https://github.com/ventoy/Ventoy/issues/2795">I still can&rsquo;t trust Ventoy,</a> so I&rsquo;m forced to look
elsewhere.</p>
<h2 id="the-hardware">
  <a class="heading-anchor" href="#the-hardware">The hardware<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I decided to get the <a href="https://www.iodd.shop/IODD-ST400-USB-30-External-Encrypted-Hard-Drive-Enclosure">IODD ST400</a> for
122 EUR (about 124 USD) off of Amazon Germany, since it was for some reason cheaper than getting it
from <a href="https://www.iodd.shop/">iodd.shop</a> directly.
SATA SSD-s are cheap and plentiful, so the ST400 made the most sense to me.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/packaging-0.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/packaging-0_hu_a38c5ef0e565aef5.webp"
     width="750"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="The packaging of the IODD ST400.">

  </a>
  <figcaption class="center">The packaging of the IODD ST400.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/packaging-1.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/packaging-1_hu_94aa2fba8b589ddd.webp"
     width="750"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="Find the typo.">

  </a>
  <figcaption class="center">Find the typo.</figcaption>
</figure>

<p>The device came with one USB cable, with type A and type C ends. The device itself has a USB type C port, which I like a
lot.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/packaging-2.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/packaging-2_hu_844bc0af40879544.webp"
     width="750"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="Also comes with a small pouch to avoid scratching the device.">

  </a>
  <figcaption class="center">Also comes with a small pouch to avoid scratching the device.</figcaption>
</figure>

<p>The buttons are functional and clicky, but incredibly loud.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/packaging-3.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/packaging-3_hu_2789b0689b1d8015.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="The IODD ST400 device itself.">

  </a>
  <figcaption class="center">The IODD ST400 device itself.</figcaption>
</figure>

<h2 id="setting-it-up">
  <a class="heading-anchor" href="#setting-it-up">Setting it up<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Before you get started with this device, I highly recommend glancing
over <a href="https://help.iodd.kr/">the official documentation.</a>
The text is poorly translated in some parts, but overall it gets the job done.</p>
<p>Inserting the SSD was reasonably simple, it slotted in well and would not move around
after assembling it. Getting the back cover off was tricky, but I&rsquo;d rather have that than have to deal with a loose back
cover that comes off when it shouldn&rsquo;t.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/assembly-0.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/assembly-0_hu_830376f38f53242c.webp"
     width="750"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="Device with the back cover off.">

  </a>
  <figcaption class="center">Device with the back cover off.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/assembly-1.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/assembly-1_hu_76134b91adfe1810.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="SSD pops right in.">

  </a>
  <figcaption class="center">SSD pops right in.</figcaption>
</figure>

<p>The most important step is the filesystem choice. You can choose between NTFS, FAT32 or exFAT. Due to the maximum file
size limitation of 4GB on FAT32, you will probably want to go with either NTFS or exFAT.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/assembly-2.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/assembly-2_hu_44ccb0c98d170aa6.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="Error message that gets shown when you haven&#39;t formatted your drive yet.">

  </a>
  <figcaption class="center">Error message that gets shown when you haven&#39;t formatted your drive yet.</figcaption>
</figure>

<p>Once you have a filesystem on the SSD, you can start copying various installers and tools on it and mount them!</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/mounted.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/mounted_hu_b79db17d76a7d238.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="IODD ST400 with one virtual disk mounted.">

  </a>
  <figcaption class="center">IODD ST400 with one virtual disk mounted.</figcaption>
</figure>

<p>The interface is unintuitive. I had to keep the manual close when testing mine, but eventually I figured out
what I can and cannot do.</p>
<h2 id="device-emulation">
  <a class="heading-anchor" href="#device-emulation">Device emulation<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Whenever you connect the IODD device to a powered on PC, it will present itself as multiple devices:</p>
<ul>
<li>normal hard drive: the whole IODD filesystem is visible here, and you can also store other files and backups as well
if you want to</li>
<li>optical media drive: this is where your installation media (ISO files) will end up, read only</li>
<li>virtual drives (up to 3 at a time): VHD files that represent virtual hard drives, but are seen as actual storage
devices on the PC</li>
</ul>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/emulation-0.png">
    <img src="/posts/2025/02/14/iodd-st400-review/media/emulation-0_hu_da60cc958c3ed65.webp"
     width="234"
     height="241"
     loading="lazy"
     decoding="async"
     alt="Emulated disks, as shown by GNOME Disks.">

  </a>
  <figcaption class="center">Emulated disks, as shown by GNOME Disks.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/emulation-1.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/emulation-1_hu_5c755245aadc4d9d.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="A ThinkPad P14s gen4 boot selection menu with the IODD device connected.">

  </a>
  <figcaption class="center">A ThinkPad P14s gen4 boot selection menu with the IODD device connected.</figcaption>
</figure>

<p>This combination of devices is incredibly handy. For example, you can boot an actual Fedora Linux installation as one of
the virtual drives, and make a backup of the files on the PC right to the IODD storage itself.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/booted-fedora.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/booted-fedora_hu_2c654da45c0cd907.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="GNOME Disks, running off of a Fedora 41 installation from a virtual drive.">

  </a>
  <figcaption class="center">GNOME Disks, running off of a Fedora 41 installation from a virtual drive.</figcaption>
</figure>

<p>S.M.A.R.T information also seems to be passed through properly for the disk that&rsquo;s inside.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/crystaldiskinfo.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/crystaldiskinfo_hu_67a9b36c46a0a6af.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="CrystalDiskInfo showing the details of the SSD that&#39;s inside the IODD device, on a portable Windows 11 emulated disk.">

  </a>
  <figcaption class="center">CrystalDiskInfo showing the details of the SSD that&#39;s inside the IODD device, on a portable Windows 11 emulated disk.</figcaption>
</figure>

<p>Tech tip: to automatically mount your current selection of virtual drives and ISO file at boot, hold down the &ldquo;9&rdquo; button
for about 3 seconds. The button also has an exit logo on it. Without this step, booting an ISO or virtual drive becomes
tricky as you&rsquo;ll have to both spam the &ldquo;select boot drive&rdquo; key on the PC while navigating the menus on the IODD device
to mount the ISO.</p>
<p>The performance is okay. The drive speeds are limited to SATA II speeds, which means that your read/write speeds cap out
at about 250 MB/s. Latency will depend a lot on the drive, but it stays mostly in the sub-millisecond range on my SSD.
The GNOME Disks benchmark does show a notable chunk of reads having a 5 millisecond latency. The drive does not seem to
exhibit any throttling under sustained loads, so at least it&rsquo;s better than a normal USB stick.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/booted-benchmark.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/booted-benchmark_hu_be14b6054cbbcb0e.webp"
     width="1000"
     height="750"
     loading="lazy"
     decoding="async"
     alt="A quick disk benchmark while booting off of the drive itself.">

  </a>
  <figcaption class="center">A quick disk benchmark while booting off of the drive itself.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/benchmark-unloaded.png">
    <img src="/posts/2025/02/14/iodd-st400-review/media/benchmark-unloaded_hu_6b1478f7147b256.webp"
     width="656"
     height="598"
     loading="lazy"
     decoding="async"
     alt="Benchmark results while not emulating any virtual drives.">

  </a>
  <figcaption class="center">Benchmark results while not emulating any virtual drives.</figcaption>
</figure>

<p>The speeds seem to be the same for all emulated devices, with latencies and speeds being within spitting distance.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/benchmark-virtual-drive.png">
    <img src="/posts/2025/02/14/iodd-st400-review/media/benchmark-virtual-drive_hu_eeaba39f96a6583f.webp"
     width="656"
     height="598"
     loading="lazy"
     decoding="async"
     alt="Benchmark results for the emulated virtual optical drive.">

  </a>
  <figcaption class="center">Benchmark results for the emulated virtual optical drive.</figcaption>
</figure>

<h2 id="the-firmware-sucks-actually">
  <a class="heading-anchor" href="#the-firmware-sucks-actually">The firmware sucks, actually<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>The IODD ST400 is a great idea that&rsquo;s been turned into a good product, but the firmware is terrible enough to <em>almost</em>
make me regret the purchase.</p>
<p>The choice of filesystems available (FAT32, NTFS, exFAT) is very Windows-centric, but at least it comes with the upside
of being supported on
most popular platforms, including Linux and Mac. Not great, not terrible.</p>
<p>The folder structure has some odd limitations. For example, you can only have 32 items within a folder. If you have more
of that, you have to use nested folders. This sounds like a hard cap written somewhere within the device firmware
itself. I&rsquo;m unlikely to hit such limits myself and it doesn&rsquo;t seem to affect the actual storage, just the device itself
isn&rsquo;t able to handle that many files within a directory listing.</p>
<p>The most annoying issue has turned out to be <em><strong>defragmentation.</strong></em></p>
<p>In <em><strong>2025!</strong></em></p>
<p>It&rsquo;s a known limitation
that&rsquo;s <a href="https://help.iodd.kr/troubleshooting/error-messages">handily documented on the IODD documentation.</a> On Windows,
you can fix it by using a disk defragmentation tool, which is really not recommended on an SSD. On Linux, I have not yet
found a way to do that, so I&rsquo;ve resorted to simply making a backup of the contents of the drive, formatting the disk,
and copying it all back again. This is a frustrating issue that only comes up when you try to use a virtual hard drive.
It would absolutely suck to hit this error while in the field.</p>









<figure class="center">
  <a href="/posts/2025/02/14/iodd-st400-review/media/i-hate-this-error-so-much.jpg">
    <img src="/posts/2025/02/14/iodd-st400-review/media/i-hate-this-error-so-much_hu_cbcee3f9c075e2f0.webp"
     width="726"
     height="1000"
     loading="lazy"
     decoding="async"
     alt="The worst aspect of this device: the &#34;defrag&#34; error message.">

  </a>
  <figcaption class="center">The worst aspect of this device: the &#34;defrag&#34; error message.</figcaption>
</figure>

<p>The way virtual drives are handled is also less than ideal. You can only use fixed VHD files that are not sparse, which
seems to again be a limitation of the firmware.</p>
<p>Tech tip: if you&rsquo;re on Linux and want to convert a raw disk image (such as a disk copied with <code>dd</code>) to a VHD file, you
can use a command like this one:</p>
<pre tabindex="0"><code>qemu-img convert -f raw -O vpc -o subformat=fixed,force_size source.img target.vhd
</code></pre><p>The firmware really is the worst part of this device. What I would love to see is a device like IODD but with free and
open source firmware. Ventoy has proven that there is a market for a solution that makes juggling installation media
easy, but it can&rsquo;t emulate hardware devices. An IODD-like device can.</p>
<h2 id="encryption-and-other-features">
  <a class="heading-anchor" href="#encryption-and-other-features">Encryption and other features<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I didn&rsquo;t test those because I don&rsquo;t really need those features myself, I really don&rsquo;t need to protect my Linux
installers from prying eyes.</p>
<h2 id="conclusion">
  <a class="heading-anchor" href="#conclusion">Conclusion<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>The IODD ST400 is a good device with a proven market, but the firmware makes me refrain from outright recommending it to
everyone, at least not at this price.</p>
<p>If it were to cost something like 30-50 EUR/USD, I would not mind the firmware issues at all.</p>
]]></content:encoded></item><item><title>What I've learned running Linux and Windows off of USB flash drives</title><link>https://ounapuu.ee/posts/2024/12/02/linux-on-usb/</link><pubDate>Mon, 02 Dec 2024 06:00:00 +0200</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2024/12/02/linux-on-usb/</guid><description>I took some USB flash drives I had around and put Windows and Linux on them, here's how it went.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2024/12/02/linux-on-usb/media/cover_hu_545a86df87185231.jpg" width="1200" height="630" alt="What I've learned running Linux and Windows off of USB flash drives" /><p>I&rsquo;ve recently made an effort to reduce the amount of tech stuff that I own. Lack of space, lack of time and the guilt
of storing perfectly functional hardware unused in a box were the main motivators.</p>
<p>This has resulted in experiments with my assortment of USB flash storage that I&rsquo;ve acquired over the years. They&rsquo;re too
old and cheap to be worth selling, so why not run them to the ground?</p>
<p>I&rsquo;ve always liked the idea of USB sticks. They&rsquo;re small and the good ones are actually surprisingly fast, especially
compared to hard drives. This is why I started installing operating systems on them.
It&rsquo;s really handy to have a USB stick around with a full operating system on it for testing purposes, and I&rsquo;m too cheap
to buy an <a href="https://www.iodd.shop/Home">IODD device.</a><sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup></p>
<p>What I&rsquo;ve learned is that Linux installed on a USB stick is a much nicer experience compared to a Windows To Go
installation, even on the cheaper and crappier ones.</p>
<h2 id="the-windows-experience">
  <a class="heading-anchor" href="#the-windows-experience">The Windows experience<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I&rsquo;ve used <a href="https://rufus.ie/en/">Rufus</a> for creating portable Windows installations in the past, mostly on portable
SSD-s.
These have come in handy when I&rsquo;ve had to update the firmware on certain PC-s or associated hardware, like USB-C
docks.<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup></p>
<p>Recently, I took a Samsung FIT 128GB USB 3.0 drive to see how well Windows can operate off of it.</p>
<p>It&rsquo;s horrible.</p>
<p>Windows will run, but the first time you boot it, you will have to wait for all sorts of driver and update
installations,
which puts a huge strain on the storage, making the whole experience borderline unusable. Once that process is
complete (multiple hours later), it&rsquo;s actually not that bad, until you receive yet another Windows update.</p>
<p>For a USB stick that you use only occasionally to troubleshoot hardware, Windows is a really poor choice. Even on a
proper portable SSD, it will still be relatively slow due to all that driver and update installation
taking place in the background.</p>
<p>Eventually, that installation will also probably brick itself in one way or another, and not even due to any storage
failures. Simply using the same disk on multiple machines will accrue configuration and driver cruft that likely results
in Windows giving up. It&rsquo;s just a guesstimate on my side, but I would not be surprised if it was true.</p>
<p>After a Windows update run completely fried one USB stick<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup> that I used for testing, I gave up on it.</p>
<h2 id="the-linux-experience">
  <a class="heading-anchor" href="#the-linux-experience">The Linux experience<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Most Linux distributions have supported a LiveCD/LiveUSB solution for at least 15+ years at this point. It&rsquo;s a neat
idea: your installation media also doubles as an emergency portable installation of that Linux distro, which you can use
to quickly test the functionality of a PC, repair an existing installation or install it on a new machine.</p>
<p>The downside of that solution is that the software on it cannot be changed. You can temporarily install new software or
update existing packages during that session, or have a separate writeable partition set aside on the USB stick for
storing any permanent changes, but it&rsquo;s a bit of a hassle to think about that nuance every time.</p>
<p>This is why I went ahead and installed Fedora Linux 40 on a Sandisk Ultra 16GB USB 3.0 flash drive <a href="/posts/2023/02/15/shrinkflation/">(the
one that is actually 16GB).</a>
The storage speed is still a bottleneck, but it&rsquo;s much less noticeable during normal use.</p>
<p>After the installation is done, you&rsquo;re simply using the system as-is. Opening programs will have a slightly longer
delay, but it&rsquo;s still a perfectly <a href="https://en.wiktionary.org/wiki/cromulent">cromulent</a> Linux experience.</p>
<p>A fresh installation of Fedora Workstation 40 uses only <strong>3.6GB</strong> of storage! On a 16GB USB flash drive, this leaves
plenty
of room for performing system updates and installing a small number of applications. If you choose the <code>btrfs</code>
filesystem during the installation (the default option), then the files will also be compressed to save even more space
and increase the effective storage bandwidth.<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup></p>









<figure class="center">
  <a href="/posts/2024/12/02/linux-on-usb/media/fedora-disk-usage.png">
    <img src="/posts/2024/12/02/linux-on-usb/media/fedora-disk-usage_hu_529947b4729ff43e.webp"
     width="684"
     height="264"
     loading="lazy"
     decoding="async"
     alt="Disk usage on a fresh Fedora Workstation 40 installation.">

  </a>
  <figcaption class="center">Disk usage on a fresh Fedora Workstation 40 installation.</figcaption>
</figure>

<p>You&rsquo;ll only notice that you&rsquo;re running off of a USB flash drive when installing new packages, performing system updates
or downloading large files. At least with Linux you have control over <em>when</em> you want to install the updates.</p>









<figure class="center">
  <a href="/posts/2024/12/02/linux-on-usb/media/fedora-update.png">
    <img src="/posts/2024/12/02/linux-on-usb/media/fedora-update_hu_3fe675a2983581f9.webp"
     width="870"
     height="599"
     loading="lazy"
     decoding="async"
     alt="It&#39;s not terribly fast, but it&#39;s not terrible!">

  </a>
  <figcaption class="center">It&#39;s not terribly fast, but it&#39;s not terrible!</figcaption>
</figure>

<p>Using <code>btrfs</code> also allows you to easily check the flash drive for any integrity issues. Simply
run <code>sudo btrfs scrub start -B /</code>
and you&rsquo;ll know soon enough if your flash drive is messing with your data.</p>
<h2 id="the-backerupper-usb-stick">
  <a class="heading-anchor" href="#the-backerupper-usb-stick">The <em>backerupper</em> USB stick<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>One actual use case that I have for a full Linux installation on a USB stick is the <em>backerupper</em> solution: a fully
featured Fedora Linux installation, stored on a small USB stick, and with limited access to networked storage.</p>
<p>Most people working in IT know the joys of working with hardware that family members and relatives own. Before doing any
destructive changes, it&rsquo;s always a good idea to make a full disk copy of the storage on the machine you&rsquo;re fixing. If
you screw up, you&rsquo;ll have a way of setting everything back just as it was before you did any work on it.
A full disk image will also mean that nothing will be left behind before you do a fresh installation.</p>
<p>I already have a home server with some spare storage, so using it as a target for any backups makes perfect sense to me.</p>
<p>This solution has already come in handy once when I had to deal with a 10-year-old laptop with a dying hard drive.<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup></p>
<h2 id="crappy-storage-is-still-crappy">
  <a class="heading-anchor" href="#crappy-storage-is-still-crappy">Crappy storage is still crappy<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Don&rsquo;t expect any kind of longevity with USB sticks, the wear leveling and endurance is not on the level of proper
SSD-s. Linux is nicer to the USB stick regarding the wear and tear, but given enough time, the USB flash drive will
still fail.</p>
<p>I will still keep using USB flash sticks for this purpose. I have backups of the USB stick installations on my server,
so restoring it will simply mean getting another USB stick and writing the full disk image back to it.</p>
<p>USB sticks are also great for specialized solutions that don&rsquo;t do a lot of IO
operations. <a href="https://libreelec.tv/">LibreELEC</a>, a media-center oriented Linux distro, can be run off of a USB flash
drive without any major issues, since its storage demands are very small (unless you install a ton of plugins).</p>
<h2 id="conclusion">
  <a class="heading-anchor" href="#conclusion">Conclusion<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Linux and USB flash storage is a great option for making backups or having a working operating system available for
disaster recovery scenarios. Just mind the endurance of the flash storage, and don&rsquo;t use Windows.</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>I won&rsquo;t trust Ventoy <a href="https://github.com/ventoy/Ventoy/issues/2795">until they address this issue.</a>&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>Linux can also install firmware updates on some machines and hardware, but it&rsquo;s not a guaranteed success.&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>only the third time that I&rsquo;ve actually fried a solid state flash storage device through write abuse in my life.
Flash is actually pretty good!&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>compression allows us to push more data through a small pipe, be it a slow storage device or the network, at the
cost of additional CPU usage.&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>I utilized my sick tech skills to force a full rewrite of the disk to reduce the number of pending bad sectors,
and that made Windows happy enough to run on it once again with a fresh installation. It&rsquo;s a ticking time bomb, but the
user is well aware of it and just wants to have a working backup laptop around.&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded></item><item><title>Tiered storage: use the right tool for the job</title><link>https://ounapuu.ee/posts/2023/03/26/tiered-storage/</link><pubDate>Sun, 26 Mar 2023 06:00:00 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2023/03/26/tiered-storage/</guid><description>A short ramble about something I realized over the years with my self-hosting setup.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2023/03/26/tiered-storage/media/cover_hu_55d647cb3831383b.jpg" width="1200" height="630" alt="Tiered storage: use the right tool for the job" /><p>Hard drives are still the default choice for many homelab and data hoarding
enthusiasts. They still hold the gigabytes per dollar advantage over SSD-s (for now),
and if you buy the big external drives and take the drives out of the enclosures,
you can get a pretty good deal.</p>
<p>Spinning rust has one obvious downside: it&rsquo;s slow, both in maximum transfer
speeds and in latency. For most use cases this is fine, but if you run a service
that depends on a database or if you have a lot of clients relying on that storage,
you&rsquo;ll find that hard drives just won&rsquo;t cut it.</p>
<p>At this point you probably don&rsquo;t want to <a href="https://www.jeffgeerling.com/blog/2022/building-fast-all-ssd-nas-on-budget">splurge and build an all-SSD NAS</a>,
so you look up caching solutions. Depending on your platform, you&rsquo;ll have all sorts
of options.</p>
<p>If you run ZFS, you&rsquo;ll likely learn about L2ARC and why you probably don&rsquo;t want
to use it (hint: check your ZFS ARC hit/miss ratio first).
Or <a href="https://klarasystems.com/articles/what-makes-a-good-time-to-use-openzfs-slog-and-when-should-you-avoid-it/">SLOG</a>,
or the <a href="https://forum.level1techs.com/t/zfs-metadata-special-device-z/159954/">special metadata device.</a>
And in most cases the top recommendation is to add as much RAM as you can to
the system so that you can benefit from a bigger filesystem cache. You&rsquo;ll see
some improvements, but not all workloads will benefit from this and you might
up being disappointed after all that work.</p>
<p>I cannot speak for options on other platforms, but in most cases the idea is
similar: buy a separate sacrificial SSD and use it as a cache drive.</p>
<h2 id="cache-is-not-king">
  <a class="heading-anchor" href="#cache-is-not-king">Cache is (not) king<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Take a moment and think about what type of data you&rsquo;re storing.</p>
<p>Here&rsquo;s an overview based on my own setup:</p>
<ul>
<li>archived YouTube videos (bunch of big files)</li>
<li>cat pictures (bunch of small and big files)</li>
<li>services that utilize a database (bunch of smaller files)</li>
<li>various installation media (bunch of big files)</li>
<li>backups of physical disks (bunch of big files)</li>
<li>a copy of my Steam library (bunch of big and small files)</li>
<li>a web server (bunch of small files)</li>
</ul>
<p>Most of the data I have is accessed relatively infrequently, and when it is,
the performance requirements are not that high. Any hard drive based array
will be able to handle streaming video or copying big bulky files over the
network.</p>
<p>Data that is more latency sensitive, such as Nextcloud, Jellyfin (and its
.sqlite DB) and PostgreSQL, take up a relatively small part of the overall
storage.</p>
<p>In this case (and assuming that the setup allows for it physically), the
solution is simple: add a smaller flash-based storage pool to the
setup and use it for data that benefits from it.</p>
<p>I experimented with a similar setup in the past with two 8 TB hard drives holding
all the big files and a pair of 250 GB SSD-s handling Nextcloud and other
services. Now I had the best of both worlds.</p>
<p>In short, you don&rsquo;t need to mess around with a fancy caching solution if your
storage usage patterns are simple and predictable. If you do a little bit of
investigation once, you can bypass all the logic that is usually built into
various caching solutions and get a better end result as no caching solution is
100% perfect.</p>
]]></content:encoded></item><item><title>Shrinkflation, SanDisk style</title><link>https://ounapuu.ee/posts/2023/02/15/shrinkflation/</link><pubDate>Wed, 15 Feb 2023 06:00:00 +0200</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2023/02/15/shrinkflation/</guid><description>A cheap USB stick and the marketing around it caused disappointment, more at 11.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/posts/2023/02/15/shrinkflation/media/cover_hu_3f8d085c81d8a354.jpg" width="1200" height="630" alt="Shrinkflation, SanDisk style" /><p><strong>2023-02-16 update:</strong> this post is <strong>not</strong> about the &ldquo;GB vs GiB&rdquo; issue, or the &ldquo;lost disk space&rdquo; that you
notice after formatting the device in an OS. Please read the article in full before
making inaccurate comments online.</p>
<p>For many years, I have used two SanDisk Ultra 16 GB USB flash drives
as OS installation media. Since I do not trust <a href="https://www.ventoy.net/en/index.html">Ventoy</a> yet,
and alternative &ldquo;one stick that does it all&rdquo; solutions have had odd bugs from time to time,
I prefer having separate physical USB sticks for each OS, one for Fedora Linux,
and one for Windows 10.</p>
<p>I hate reflashing sticks all the time and would like to have at least one around
that always has Fedora Linux on it, so I decided to get two more USB sticks of the
same brand and size. Once they arrived, I got annoyed.</p>
<p>The old flash drive shows up like this in GNOME Disks.</p>









<figure class="center">
  <a href="/posts/2023/02/15/shrinkflation/media/image-0.png" aria-label="View full-size image">
    <img src="/posts/2023/02/15/shrinkflation/media/image-0_hu_e94c505cd851477c.webp"
     width="397"
     height="122"
     loading="lazy"
     decoding="async"
     alt="">

  </a>
  
</figure>

<p>Here&rsquo;s the new one.</p>









<figure class="center">
  <a href="/posts/2023/02/15/shrinkflation/media/image-1.png" aria-label="View full-size image">
    <img src="/posts/2023/02/15/shrinkflation/media/image-1_hu_33959bdf0f4bf38e.webp"
     width="409"
     height="120"
     loading="lazy"
     decoding="async"
     alt="">

  </a>
  
</figure>

<p>Although it does not matter one <em>bit</em> for my use case, I am annoyed that the new one
is shipping with much fewer bits than the old one. I&rsquo;m a whole 607125504 bytes short!
That&rsquo;s 579 MB, or about half a gigabyte.</p>
<p>The only difference that I can make out on the surface is that the new one was manufactured in Malaysia.</p>









<figure class="center">
  <a href="/posts/2023/02/15/shrinkflation/media/image-2.jpg">
    <img src="/posts/2023/02/15/shrinkflation/media/image-2_hu_482485eb9cc5b2fd.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="Other than years worth of wear and tear, they look almost identical.">

  </a>
  <figcaption class="center">Other than years worth of wear and tear, they look almost identical.</figcaption>
</figure>

<p>But it seems that SanDisk (or their new owner Western Digital) has legally covered their butt with
<a href="https://support-en.wd.com/app/answers/detailweb/a_id/35080">this knowledge base article.</a></p>









<figure class="center">
  <a href="/posts/2023/02/15/shrinkflation/media/image-3.png" aria-label="View full-size image">
    <img src="/posts/2023/02/15/shrinkflation/media/image-3_hu_4fb23f920cfa8ac8.webp"
     width="862"
     height="179"
     loading="lazy"
     decoding="async"
     alt="">

  </a>
  
</figure>

<p>Here&rsquo;s the line that explains why some bytes are seemingly missing on formatted media.
This is what consumers are usually concerned about once they use their storage device.</p>
<blockquote>
<p>SanDisk defines 1 GB as 1,000,000,000 bytes.  Operating Systems define 1 GB as 1,073,741,824 BYTES.</p>
</blockquote>
<p>However, this section is the one actually relevant to my finding.</p>
<blockquote>
<p>A portion of the total capacity is used to store certain functions including optimizations of the memory
that support performance and endurance and therefore is not available for user storage.
This is disclosed on our packaging and marketing materials when you see the statement &ldquo;Actual user storage less.&rdquo;</p>
</blockquote>
<p>Based on this, I assume that SanDisk cheaped out and decided to not add enough flash to provide
both the advertised storage of 16 000 000 000 bytes available to the user <em>and</em> some room for
over-provisioning that flash storage benefits from. And somehow they are the only ones who do it
this way, as all other storage media that I own shows up with the proper number of bytes.</p>
<p>And for those interested, here&rsquo;s <code>f3</code> output for both the old and new sticks.</p>
<p>Old:</p>
<pre tabindex="0"><code># f3probe /dev/sdc --destructive --time-ops
F3 probe 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Good news: The device `/dev/sdc&#39; is the real thing

Device geometry:
	         *Usable* size: 14.91 GB (31266816 blocks)
	        Announced size: 14.91 GB (31266816 blocks)
	                Module: 16.00 GB (2^34 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1&#39;49&#34;
 Operation: total time / count = avg time
      Read: 463.8ms / 4814 = 96us
     Write: 1&#39;48&#34; / 4192321 = 25us
     Reset: 1us / 1 = 1us
</code></pre><p>New:</p>
<pre tabindex="0"><code># f3probe /dev/sdd --destructive --time-ops
F3 probe 8.0
Copyright (C) 2010 Digirati Internet LTDA.
This is free software; see the source for copying conditions.

WARNING: Probing normally takes from a few seconds to 15 minutes, but
         it can take longer. Please be patient.

Good news: The device `/dev/sdd&#39; is the real thing

Device geometry:
	         *Usable* size: 14.34 GB (30081024 blocks)
	        Announced size: 14.34 GB (30081024 blocks)
	                Module: 16.00 GB (2^34 Bytes)
	Approximate cache size: 0.00 Byte (0 blocks), need-reset=no
	   Physical block size: 512.00 Byte (2^9 Bytes)

Probe time: 1&#39;02&#34;
 Operation: total time / count = avg time
      Read: 338.2ms / 4814 = 70us
     Write: 1&#39;02&#34; / 4192321 = 14us
     Reset: 1us / 1 = 1us
</code></pre><p>I&rsquo;m not even mad, I&rsquo;m just disappointed.</p>
<h2 id="2023-02-16-update">
  <a class="heading-anchor" href="#2023-02-16-update">2023-02-16 update<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>This post received more attention than usual, so here are some additional details and clarifications.</p>
<blockquote>
<p>Why do you not trust Ventoy?</p>
</blockquote>
<p>Ventoy is a great tool from what I&rsquo;ve seen online and the use case it fills does save time and resources.
However, I have some reservations about it. If I had to compromise a bunch of critical systems
over a long time period, then publishing a great tool and having it tamper with your OS installation media
silently would be a really good pick. At this time, I don&rsquo;t trust the developers of the tool enough
and I don&rsquo;t have the time or skills to perform repeated audits of the software every time they release a
new version.</p>
<blockquote>
<p>MBR vs GPT partitioning</p>
</blockquote>
<p>That was an oversight on my part, I should have presented both disks with the same partitioning scheme
to avoid unnecessary confusion. This has now been corrected.</p>
<blockquote>
<p>Alternatives to Ventoy</p>
</blockquote>
<p>One reader pointed out a physical device that can be used for a similar purpose as Ventoy: <a href="http://iodd.kr">IODD</a>.
I have not tested on myself and reportedly it has some bugs and is not 100% perfect, but it seems like
a neat hardware-based alternative.</p>
<p>I have personally tried out things like <a href="https://www.drivedroid.io/">DriveDroid</a> in the past, but
that required a rooted Android phone and it was not 100% bug-free either.</p>
<blockquote>
<p>Everyone knows that GB and GiB are not the same, why is this post even a thing,
the author is clearly incompetent and dumb.</p>
</blockquote>
<p>Read the article.</p>
]]></content:encoded></item><item><title>Testing a cheap ExpressCard to NVMe SSD adapter on my ThinkPad T430</title><link>https://ounapuu.ee/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/</link><pubDate>Tue, 04 Oct 2022 05:00:00 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/</guid><description>I got curious about an ExpressCard to NVMe M.2 NGFF adapter I saw on Reddit, so I got one to try out myself, ending up with a total of 4 SSD-s on my ThinkPad T430. Yes, four.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/media/cover_hu_4fe4cf2661554252.jpg" width="1200" height="630" alt="Testing a cheap ExpressCard to NVMe SSD adapter on my ThinkPad T430" /><p>I stumbled upon <a href="https://www.reddit.com/r/thinkpad/comments/urvkeb/expresscard_to_m2_nvme_key_m_adapter_from/">this post in /r/thinkpad</a>,
which got my attention. It showcases an ExpressCard to M.2 NGFF adapter that
they purchased from AliExpress. The adapter has a similar purpose to the one
designed by <a href="https://thinkmods.store/">thinkmods.store</a>, with the added bonus
that it could fit longer NVMe SSD-s if you didn&rsquo;t mind them sticking out of the
case. You could also order one instantly, so I did.</p>
<p>For those interested, the title of the listing at the time of writing of this
article is &ldquo;ExpressCard interface to m.2 NGFF nvme solid state disc x201 t430 hp8570 w520&rdquo;.
The listing I chose was <a href="https://www.aliexpress.com/item/1005002023877404.html?spm=a2g0o.order_list.0.0.74c21802cTrI3L">this one.</a>
I&rsquo;m not affiliated with the manufacturer or the seller in any way.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/0-cover.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/0-cover_hu_b7132969bcfb8a95.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="Bits and pieces.">

  </a>
  <figcaption class="center">Bits and pieces.</figcaption>
</figure>

<h2 id="the-idea">
  <a class="heading-anchor" href="#the-idea">The idea<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I try to avoid buying things that I don&rsquo;t need, which is why I came up with an
excuse for getting this adapter: adding a cache SSD to my <a href="/posts/2022/05/10/thinkpad-as-a-home-server/">ThinkPad-as-a-server</a>.</p>
<p>The OS is running off of an mSATA SSD that I could theoretically use for the
same purpose, but eventually killing the SSD that also hosts the OS with constant
writes sounded like a really bad idea. I also didn&rsquo;t want to have excessive writes
on my pair of Samsung 870 QVO 4TB SATA SSD-s, because replacing those will be
quite expensive down the line.</p>
<p>Here&rsquo;s what we&rsquo;re working with:</p>
<ul>
<li><a href="https://sabrent.com/collections/memory-and-storage/products/sb-1342-512">Sabrent Rocket Nano NVMe 2242 SSD (512GB)</a></li>
<li>the aforementioned ExpressCard to M.2 NGFF adapter</li>
<li>ThinkPad T430 with an ExpressCard34 slot</li>
</ul>
<p>Quick word on the packaging: it was packaged in a small cardboard box, which
held up okay, but a more rough treatment of the box would probably have broken
the tiny PCB.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/1-parts.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/1-parts_hu_392afbeee6a2ca65.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="The SSD, adapter PCB, and the case.">

  </a>
  <figcaption class="center">The SSD, adapter PCB, and the case.</figcaption>
</figure>

<h2 id="assembly">
  <a class="heading-anchor" href="#assembly">Assembly<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>According to comments I saw before purchasing the adapter, I expected the assembly
to be a bit tricky, and after assembling it I have to agree with that sentiment.</p>
<p>First, you&rsquo;ll have to squeeze the SSD in there. Unlike M.2 slots that are common
in laptops and desktops alike, this one requires you to horizontally push the SSD
in without breaking anything. Don&rsquo;t be afraid to use a bit of force here, but be
careful in how you apply it.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/2-assembly.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/2-assembly_hu_2f837f858065178e.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="na-no">

  </a>
  <figcaption class="center">na-no</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/3-underside.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/3-underside_hu_af7b21b7b9fbcb6f.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="Bottom of the adapter.">

  </a>
  <figcaption class="center">Bottom of the adapter.</figcaption>
</figure>

<p>After the SSD is in, screw it in properly and place the assembly on one of the
metal parts.</p>
<p>Now comes the fun part: you&rsquo;ll have to clip on the top part as well. My
recommendation is to first clip in the part that sits near the contact pins,
then the one at the other end of the adapter, and then push in the metal
shielding at the edges.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/4-assembled.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/4-assembled_hu_fbd612045f68d2d4.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="The adapter, 100% assembled.">

  </a>
  <figcaption class="center">The adapter, 100% assembled.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/5-sideview.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/5-sideview_hu_2ada239f212695b8.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="For some reason, mine ended up a bit crooked near the connector.">

  </a>
  <figcaption class="center">For some reason, mine ended up a bit crooked near the connector.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/6-opening.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/6-opening_hu_828eb1cfc210cb27.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="This opening allows for the installation of longer M.2 SSD-s.">

  </a>
  <figcaption class="center">This opening allows for the installation of longer M.2 SSD-s.</figcaption>
</figure>

<h2 id="tests">
  <a class="heading-anchor" href="#tests">Tests<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>To test this adapter out, I just plugged it into my main ThinkPad T430 running
Fedora 36 and Linux kernel version 5.19.12. It worked right out of the box.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/7-led.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/7-led_hu_4c08dbca18a1ec54.webp"
     width="600"
     height="800"
     loading="lazy"
     decoding="async"
     alt="Yes, it has a blue LED that blinks.">

  </a>
  <figcaption class="center">Yes, it has a blue LED that blinks.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/8-installed.jpg">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/8-installed_hu_42af8bb4aeb094a2.webp"
     width="600"
     height="800"
     loading="lazy"
     decoding="async"
     alt="When not blinking, it looks something like this.">

  </a>
  <figcaption class="center">When not blinking, it looks something like this.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/9-dmesg.png">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/9-dmesg_hu_9268cddb4b78501c.webp"
     width="957"
     height="200"
     loading="lazy"
     decoding="async"
     alt="Fedora picked it up with no issues.">

  </a>
  <figcaption class="center">Fedora picked it up with no issues.</figcaption>
</figure>

<p>My ThinkPad T430 can now support hotpluggable NVMe SSD-s, and 4 internal SSD-s
in total. Not quite tricked out as <a href="https://youtu.be/tHNQOJ_nsLc">this setup</a>,
but not bad for a 10 year old laptop.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/10-gnome-disks.png">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/10-gnome-disks_hu_774bb68429c0cb0d.webp"
     width="960"
     height="392"
     loading="lazy"
     decoding="async"
     alt="4 SSD-s on a ThinkPad T430. Bonkers.">

  </a>
  <figcaption class="center">4 SSD-s on a ThinkPad T430. Bonkers.</figcaption>
</figure>

<p>Please note that these tests are not done with any meaningful testing methodology
and are just quick one-off tests that aim to showcase what to expect when using
this adapter with the configuration I&rsquo;m using it with.</p>
<p>To check how well the adapter performs, I opened <code>gnome-disks</code> and did a quick
benchmark offered by it.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/11-benchmark.png">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/11-benchmark_hu_2d0b5109e530e691.webp"
     width="634"
     height="594"
     loading="lazy"
     decoding="async"
     alt="Results of the quick one-off benchmark.">

  </a>
  <figcaption class="center">Results of the quick one-off benchmark.</figcaption>
</figure>

<p>The average read speed is at 411.2 MB/s, and writes at 366.7 MB/s.</p>
<p>The results are in line with the limitations of a PCIe 2.0 x1 link, which has a
theoretical cap of 500 MB/s.</p>
<p>What&rsquo;s more noteworthy is the latency. Average access time is at 0.03 ms,
which compares well to a Samsung 870 EVO 1TB SATA SSD that&rsquo;s connected to the
same machine, which reports an average access time of 0.07 ms.</p>
<p>When copying files to the SSD, the temperature sensor reported a maximum of 60°C.
Additional read operations in the form of an ZFS scrub hit 63°C, which was the
maximum I observed during my quick testing.</p>
<p>When I threw both read and write operations to the SSD, the total I/O bandwidth
for both operations was capped at around 390 MB/s according to <code>zpool iostat 1 -v</code>.
If your workloads do a lot of read-write operations in parallel, then take this
into account.</p>









<figure class="center">
  <a href="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/12-zfs-bandwidth.png">
    <img src="/posts/2022/10/04/testing-expresscard-nvme-ssd-adapter/media/12-zfs-bandwidth_hu_11738924d5bce375.webp"
     width="729"
     height="120"
     loading="lazy"
     decoding="async"
     alt="I/O stats during heavy read-write operations.">

  </a>
  <figcaption class="center">I/O stats during heavy read-write operations.</figcaption>
</figure>

<p>As for my use case, it seems to be holding up okay. I&rsquo;ll have to report back
after this adapter and SSD combo has been in use for a longer time.</p>
]]></content:encoded></item><item><title>Tech tip: eliminate HDD humming noise</title><link>https://ounapuu.ee/posts/2021/04/02/tech-tip-1/</link><pubDate>Fri, 02 Apr 2021 07:00:00 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2021/04/02/tech-tip-1/</guid><description>Silence your hard drives with this one weird trick! System administrators hate him!</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/media/cover_hu_4fe4cf2661554252.jpg" width="1200" height="630" alt="Tech tip: eliminate HDD humming noise" /><p>Anyone that has bought themselves external WD drives from the Elements/My Book/Easystore series are probably familiar
with the acoustic characteristics of the drives. The drives have a loud hum caused
by <a href="https://arstechnica.com/gadgets/2020/09/western-digital-is-trying-to-redefine-the-word-rpm/">WD running the drives at 7200rpm while claiming the drives to be &ldquo;5400rpm-class&rdquo;</a>
and the clacking of the read-write heads is audible as well. In a small space, such as an apartment, the hum is
maddening, especially when you have more than one drive running at the same time.</p>
<p>After running such a setup for months, enough was enough. I bought some sound dampening foam and used that to try to
limit the noise that my setup was making. However, that didn&rsquo;t do much and the before/after noise comparisons didn&rsquo;t
have much of a difference. As a result of this testing, I did have various pieces of acoustic foam left, and after I
noticed that my Lenovo M73 Tiny PC had a similar shape to the WD My Book 12 TB hard drives that I got recently, I had an
idea.</p>









<figure class="center">
  <a href="/posts/2021/04/02/tech-tip-1/media/image.jpg">
    <img src="/posts/2021/04/02/tech-tip-1/media/image_hu_4f0d8b9faae28e72.webp"
     width="600"
     height="800"
     loading="lazy"
     decoding="async"
     alt="Minimum viable server, now with 90% less noise!">

  </a>
  <figcaption class="center">Minimum viable server, now with 90% less noise!</figcaption>
</figure>

<p>I used four pieces of foam and placed them so that I could stack the hard drives on top. This resulted in the humming
noise being completely eliminated. The sound of hard drive read-write heads is still there, but it is so much less
audible now. After this change, I have started hearing the cooling fan more than the hard drives themselves.</p>
<p>This setup could probably be improved by switching around the setup so that the hard drives were at the bottom with the
bottom drive having additional foam or rubber feet below it to support it better. For the time being, I&rsquo;m perfectly
happy with this arrangement, as long as it doesn&rsquo;t fall over.</p>
<h2 id="2021-04-23-update">
  <a class="heading-anchor" href="#2021-04-23-update">2021-04-23 update<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I have now added a fan to the setup!</p>









<figure class="center">
  <a href="/posts/2021/04/02/tech-tip-1/media/image2.jpg">
    <img src="/posts/2021/04/02/tech-tip-1/media/image2_hu_a93d534011079b3e.webp"
     width="1067"
     height="800"
     loading="lazy"
     decoding="async"
     alt="Pretty cool, eh?">

  </a>
  <figcaption class="center">Pretty cool, eh?</figcaption>
</figure>

<p>The fan itself is powered by one of the USB ports with the help of a spare sacrificial USB cable and a Noctua omni-join
kit that I had left over.</p>
<p>The drive temperatures are now reading around 42C and 46C.</p>
]]></content:encoded></item><item><title>What running out of SATA ports looks like</title><link>https://ounapuu.ee/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/</link><pubDate>Sat, 29 Aug 2020 17:21:21 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/</guid><description>How I slapped two hard drives on a long PCIe x1 card.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/media/cover_hu_4fe4cf2661554252.jpg" width="1200" height="630" alt="What running out of SATA ports looks like" /><p>One day I stumbled upon a <a href="https://www.youtube.com/watch?v=nQiWP8T9R60">Craft Computing video</a>
about his new server build, and on the parts list was a Sedna PCI Express 2x SATA adapter card:</p>









<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/image1.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/image1_hu_ab7a146edba408d5.webp"
     width="500"
     height="500"
     loading="lazy"
     decoding="async"
     alt="The card in question.">

  </a>
  <figcaption class="center">The card in question.</figcaption>
</figure>

<p>There are different designs out there, including a 4x SATA card, which is bonkers.</p>
<p>Anyway, I thought that I might as well give this a shot, since I have two 4TB 2.5&quot; 15mm Seagate hard drives running,
<a href="/posts/2020/08/22/disk-is-ok/">with one of them being in the process of accumulating bad sectors</a>.</p>









<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-48-37-1942.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-48-37-1942_hu_75dac604464ff51f.webp"
     width="1024"
     height="768"
     loading="lazy"
     decoding="async"
     alt="Adapter card with two drives installed (front).">

  </a>
  <figcaption class="center">Adapter card with two drives installed (front).</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-48-58-1944.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-48-58-1944_hu_2c16666f075f2054.webp"
     width="1024"
     height="768"
     loading="lazy"
     decoding="async"
     alt="Adapter card with two drives installed (back).">

  </a>
  <figcaption class="center">Adapter card with two drives installed (back).</figcaption>
</figure>

<p>The installation procedure itself is simple, just take your drives, screw them in and
plug this into a PCIe slot.</p>









<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-55-14-1945.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-55-14-1945_hu_158a5b5bf4dc792f.webp"
     width="1024"
     height="768"
     loading="lazy"
     decoding="async"
     alt="This is what it looks like installed into my server.">

  </a>
  <figcaption class="center">This is what it looks like installed into my server.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-55-19-1946.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-55-19-1946_hu_f6c7d8eb46ed23c0.webp"
     width="1024"
     height="768"
     loading="lazy"
     decoding="async"
     alt="Alternate angle.">

  </a>
  <figcaption class="center">Alternate angle.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-55-30-1947.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-19-55-30-1947_hu_d034eeb1ca74dcc6.webp"
     width="1024"
     height="768"
     loading="lazy"
     decoding="async"
     alt="Alternate angle.">

  </a>
  <figcaption class="center">Alternate angle.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-21-15-02-1948.jpg">
    <img src="/posts/2020/08/29/what-running-out-of-sata-ports-looks-like/media/20-08-26-21-15-02-1948_hu_8e6fd98d676b1c98.webp"
     width="1024"
     height="768"
     loading="lazy"
     decoding="async"
     alt="As you can see, it did not kill the system.">

  </a>
  <figcaption class="center">As you can see, it did not kill the system.</figcaption>
</figure>

<h2 id="so-how-well-does-it-work">
  <a class="heading-anchor" href="#so-how-well-does-it-work">So, how well does it work?<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Quite well, actually.</p>
<p>The PCIe 2.0 x1 link does mean that your speeds will be capped at around 500MB/s, but
with current hard drives you are unlikely to reach this limit. SSD-s, on the other hand,
will be bottlenecked in sequential read/write workloads.</p>
<p><code>lspci -nnk</code> output:</p>
<pre tabindex="0"><code>01:00.0 SATA controller [0106]: ASMedia Technology Inc. ASM1062 Serial ATA Controller [1b21:0612] (rev 01)
        Subsystem: ASMedia Technology Inc. Device [1b21:1060]
        Kernel driver in use: ahci
        Kernel modules: ahci
</code></pre><p>The drives are individually addressable and show up as normal drives (like <code>/dev/sda</code>).
S.M.A.R.T info is functional and readable.</p>
<p>This adapter has been running in my system for over half a week now and so far
there haven&rsquo;t been any stability issues whatsoever.</p>
<h2 id="should-i-get-this">
  <a class="heading-anchor" href="#should-i-get-this">Should I get this?<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>This adapter is a good fit for the following use cases:</p>
<ul>
<li>there are no more HDD/SSD drive mounts in your system left and you do not want
to use double-sided tape as one</li>
<li>you have run out of SATA ports and don&rsquo;t mind using up a PCIe slot</li>
<li>you want to install additional SATA drives in your system, but also would prefer
to keep the amount of cabling in your system at a minimum</li>
<li>flexing on your friends with your fancy new 8/10 TB storage card</li>
</ul>
<p>I would recommend looking into alternative solutions if your use case matches one of these:</p>
<ul>
<li>using this adapter with SSD-s on sequential read/write workloads that exceed 500+MB/s</li>
<li>adding more than two SATA drives into your system (get a simple PCIe -&gt; SATA adapter
that only provides the data connectors instead)</li>
</ul>
]]></content:encoded></item><item><title>Stupid project ideas: the War Machine</title><link>https://ounapuu.ee/posts/2020/08/22/stupid-project-ideas-1/</link><pubDate>Sat, 22 Aug 2020 21:24:08 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2020/08/22/stupid-project-ideas-1/</guid><description>Maybe not stupid, but definitely stupid expensive.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/media/cover_hu_4fe4cf2661554252.jpg" width="1200" height="630" alt="Stupid project ideas: the War Machine" /><p><a href="https://www.youtube.com/user/LinusTechTips">LinusTechTips</a> has some pretty great videos about building
insane PC and server setups, such as:</p>
<ul>
<li>
<p><a href="https://youtu.be/EtZXMj_gUjU">unboxing and deploying <em>petabytes</em> of storage</a></p>
</li>
<li>
<p><a href="https://youtu.be/LXOaCkbt4lI">7 gamers, 1 CPU</a></p>
</li>
<li>
<p><a href="https://youtu.be/R_h63IsmvSQ">building sleeper PC-s</a></p>
</li>
<li>
<p><a href="https://youtu.be/uWtU8pGspj0">testing sketchy CPU-s</a></p>
</li>
<li>
<p><a href="https://youtu.be/ZFLiKClKKhs">opening up a 100TB SSD</a></p>
</li>
</ul>
<p>I have the ideas, but not the budget of LinusTechTips, so writing them down and hoping that one day I can test this out
is the best I can do for now.</p>
<h2 id="the-project-itself">
  <a class="heading-anchor" href="#the-project-itself">The project itself<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>The main idea is to have a laptop that has ridiculous amounts of storage and the performance to back it up.
The idea started gaining traction in my head after I realized that my Lenovo ThinkPad T430 can house up to 3 SSD-s, which
makes it a perfect candidate for a system with a ZFS mirror configuration. It also helps that it is powered by a quad-core
CPU and 16GB of RAM.</p>
<p>Additional points:</p>
<ul>
<li>low power, should stay below 60-90W even under the worst case scenarios</li>
<li>portable, just plug in the power and an ethernet cable and you are good to go</li>
<li>built-in UPS in the form of the laptop battery</li>
<li>well built, can survive a fall or two (already has done so, but that&rsquo;s a story for another time)</li>
<li>includes a screen and a keyboard for those times where you really screwed something up and need to fix it fast</li>
<li>supports 1x mSATA SSD (great for / partition) and 2x SATA HDD/SSD (one in the usual drive bay, the other in the HDD caddy that
is replacing the optical drive)</li>
</ul>
<h2 id="storage">
  <a class="heading-anchor" href="#storage">Storage<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>With SSD prices having dropped quite low and capacities increasing with time, it might not be completely unreasonable
to get SSD-s with capacities reaching multiple terabytes. At the time of writing, Samsung, for example, is shipping
<a href="https://www.samsung.com/au/memory-storage/870-qvo-sata-3-2-5-ssd/MZ-77Q1T0BW/">SATA SSD-s with capacities up to 8TB</a>,
which is the same size as the main hard drives in my server right now.</p>
<p>However, these SSD-s are also ridiculously expensive, with the 4 TB model costing ~400 euros and the 8 TB costing almost
800 euros.</p>









<figure class="center">
  <a href="/posts/2020/08/22/stupid-project-ideas-1/media/2020-08-22-21-49-00.png">
    <img src="/posts/2020/08/22/stupid-project-ideas-1/media/2020-08-22-21-49-00_hu_ad198e1e6aaf23cd.webp"
     width="731"
     height="509"
     loading="lazy"
     decoding="async"
     alt="The capacity isn&#39;t the only thing that is big about this SSD.">

  </a>
  <figcaption class="center">The capacity isn&#39;t the only thing that is big about this SSD.</figcaption>
</figure>

<p>Hard drives are generally cheaper per TB, but in this case we don&rsquo;t actually have much better options. 2.5&quot; 9mm hard drives
seem to go up to 2TB at most. You will also have to take into account the fact that hard drives do not like impacts,
such as falls, and they are much slower than SSD-s in most workloads.</p>
<h2 id="cooling">
  <a class="heading-anchor" href="#cooling">Cooling<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>Since I have fitted this T430 with an <a href="https://ark.intel.com/content/www/us/en/ark/products/64889/intel-core-i7-3820qm-processor-8m-cache-up-to-3-70-ghz.html">Intel i7 3820QM</a>
CPU with a 45 watt TDP, cooling is an issue. Liquid metal, beefier heatsinks, fresh thermal paste, I have tried it all, but
the only solution that has actually worked is disabling the turbo boost feature. There is also this other solution I created
that automatically throttles the CPU at a chosen temperature limit using Intel p-state driver, but that solution requires
a rewrite.</p>
<p>With poor cooling comes great noise, so ideally this server should run in a place that does not bother anyone with its
high-pitched fan noise.</p>
<h2 id="performance">
  <a class="heading-anchor" href="#performance">Performance<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>With a quad core CPU, this system can do quite a lot. Running Nextcloud, PostgreSQL, Jellyfin or any other service should
be a breeze, especially since the main storage is SSD based. The amount of RAM is also perfectly suitable for doing quite
a lot. Run a couple of VM-s, transcode your media, it can do it all (with reasonable expectations, though).</p>
<h2 id="portability">
  <a class="heading-anchor" href="#portability">Portability<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>One of the best features of this setup is that you can just grab it and go, should the need arise. Its low power requirement
makes it a much more suitable candidate for powering it in situations where the electrical grid is down and all you have
is a generator or some form of renewable energy. In addition to that, everything you need to work with the machine is already
there, just open up the laptop and start working using the built-in keyboard and screen.</p>
<p>The good build quality of the laptop also means that you do not need to worry much about putting it in your backpack and
throwing it around. Sure, the plastic might break in some places, and if the impact is strong enough then it can still
break, but it is less likely to break when compared to alternative <em>thin and light</em> types of laptops.</p>
<h2 id="practicality">
  <a class="heading-anchor" href="#practicality">Practicality<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>It&rsquo;s not all fun and games, though. This setup does have quite a few downsides:</p>
<ul>
<li>no way to upgrade CPU and RAM any further. What you have is what you will have to live with.</li>
<li>it&rsquo;s expensive simply due to the fact that the SSD-s get very pricy if you require high capacities, hard drives
are still more economical for storing huge amounts of data</li>
<li>the cooling issue will remain unsolveable, unless you invest time and resources into designing a custom solution</li>
</ul>
<h2 id="conclusion">
  <a class="heading-anchor" href="#conclusion">Conclusion<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p><em>Do I still want to build this?</em></p>
<p>Yes.</p>
<p><em>Can I build this?</em></p>
<p>Not unless a delivery truck full of 8TB SSD-s happens to crash in front of me.</p>
<p>Or someone sponsors me. <em>Take a hint, WD/Seagate</em>.</p>
]]></content:encoded></item><item><title>Disk is OK</title><link>https://ounapuu.ee/posts/2020/08/22/disk-is-ok/</link><pubDate>Sat, 22 Aug 2020 07:29:19 +0300</pubDate><author>ihavesomethoughtsonyourblog@ounapuu.ee (Herman Õunapuu)</author><guid>https://ounapuu.ee/posts/2020/08/22/disk-is-ok/</guid><description>It's all good, man.</description><content:encoded><![CDATA[<img src="https://ounapuu.ee/media/cover_hu_4fe4cf2661554252.jpg" width="1200" height="630" alt="Disk is OK" /><p>Maybe I am unlucky with computer hardware.</p>
<p>Maybe I have the opposite of <a href="https://en.wikipedia.org/wiki/Midas#Golden_Touch">the golden touch of Midas</a>.</p>
<p>Or maybe it&rsquo;s just the fact that I use my hardware for things they were never meant to be used for.</p>
<p>Anyway, I have acquired two Seagate 4TB external hard drives for doing some testing with ZFS.
I shucked them (took them out of their enclosure) and started using them as internal drives in many different
configurations.</p>
<p>Funnily enough, even though the two external drives had different branding (Backup Plus, Expansion)
and enclosure design, the hard drives in them were identical.</p>
<p>Some info about the drives:</p>
<ul>
<li>Model: ST4000LM024-2AN17V</li>
<li>Recording type: <a href="https://en.wikipedia.org/wiki/Shingled_magnetic_recording">SMR (shingled magnetic recording)</a></li>
<li>Form factor: 2.5&quot;</li>
<li>Interface: SATA</li>
<li>Thickness: <strong>15 mm</strong></li>
</ul>
<p>Before I get to the stupid stuff, I would like to mention what these drives are good for, and where they suffer heavily.</p>
<p>Good:</p>
<ul>
<li>WORM (write once, read many) type of workloads, such as a Steam library, your media collection etc.</li>
</ul>
<p>Bad:</p>
<ul>
<li>random read/write workloads (performance is absolutely rubbish and makes the system unusable)</li>
<li>write heavy workloads (SMR requires some clean-up activities that are managed by the drive, and you cannot do anything while
those take place)</li>
</ul>
<h2 id="the-stupid-stuff">
  <a class="heading-anchor" href="#the-stupid-stuff">The stupid stuff<svg class="heading-anchor__icon" viewBox="0 0 24 24" width="0.75em" height="0.75em" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg></a>
</h2>
<p>I have done some pretty dumb things with these, such as using them in an <a href="https://www.in-win.com/en/gaming-chassis/Chopin">InWin Chopin computer case</a>
and letting them hit 60C under load. Fun fact: these drives actually fit almost perfectly in the case, as long as you
bend one small metal section for one of the drive cages. Not so fun fact: they will overheat if you have a high CPU load
and you cannot do much about that.</p>
<p>Currently these drives are sitting in my main desktop. Initially I tried using them in a mirrored configuration under
Windows, because having your whole Steam library downloaded with disk space to spare is pretty cool. Unfortunately, one
of the disks started having issues and it got kicked out of the mirror. It kept doing this every time it accumulated bad
sectors.</p>
<p>Now these two sit in a ZFS mirror configuration inside a VM, acting as some sort of a temporary scratch disk. Another
free fun fact: <code>kvm</code> (or qemu, or libvirt, one of those) will pause the VM if it detects that one of your disks has
encountered I/O errors, and seems that the only &ldquo;fix&rdquo; is to force a restart of the VM (could not unpause the VM).</p>
<p>It has become some sort of a fun pastime for me to keep an eye on one of the failing drives and the status of the ZFS mirror.</p>
<p><em>Will ZFS detect some errors?</em></p>
<p><em>How large can the bad sector count get before the drive dies?</em></p>
<p><em>When will it actually die?</em></p>
<p><em>Why is <a href="https://en.wikipedia.org/wiki/S.M.A.R.T.">S.M.A.R.T</a> <em>still</em> reporting that the disk is OK?</em></p>
<p>So far, so good.</p>









<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-08-17-07-45-51.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-08-17-07-45-51_hu_5c5bafe4f031a67.webp"
     width="414"
     height="151"
     loading="lazy"
     decoding="async"
     alt="2020-08-17. Nope, not OK.">

  </a>
  <figcaption class="center">2020-08-17. Nope, not OK.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-08-20-23-21-28.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-08-20-23-21-28_hu_cb45e12ea3173227.webp"
     width="425"
     height="157"
     loading="lazy"
     decoding="async"
     alt="2020-08-20. Still not OK.">

  </a>
  <figcaption class="center">2020-08-20. Still not OK.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-08-22-20-49-21.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-08-22-20-49-21_hu_e8727e34f879c63c.webp"
     width="423"
     height="153"
     loading="lazy"
     decoding="async"
     alt="2020-08-22. OK, that&#39;s pretty bad.">

  </a>
  <figcaption class="center">2020-08-22. OK, that&#39;s pretty bad.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-08-29-17-10-38.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-08-29-17-10-38_hu_aae832d18d06b1cf.webp"
     width="837"
     height="173"
     loading="lazy"
     decoding="async"
     alt="2020-08-29. Moved this to a proper server box.">

  </a>
  <figcaption class="center">2020-08-29. Moved this to a proper server box.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-09-11-07-44-31.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-09-11-07-44-31_hu_7efd2b0d2b5e7cf6.webp"
     width="1174"
     height="397"
     loading="lazy"
     decoding="async"
     alt="2020-09-09. He&#39;s dead, Jim.">

  </a>
  <figcaption class="center">2020-09-09. He&#39;s dead, Jim.</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-09-12-11-49-21.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-09-12-11-49-21_hu_388360a48b055b14.webp"
     width="835"
     height="182"
     loading="lazy"
     decoding="async"
     alt="2020-09-12. One restart later: it&#39;s back!">

  </a>
  <figcaption class="center">2020-09-12. One restart later: it&#39;s back!</figcaption>
</figure>










<figure class="center">
  <a href="/posts/2020/08/22/disk-is-ok/media/2020-09-22-08-22-22.png">
    <img src="/posts/2020/08/22/disk-is-ok/media/2020-09-22-08-22-22_hu_6075a8592b11b062.webp"
     width="836"
     height="169"
     loading="lazy"
     decoding="async"
     alt="2020-09-22. More errors, more work for ZFS.">

  </a>
  <figcaption class="center">2020-09-22. More errors, more work for ZFS.</figcaption>
</figure>

<p>Expect this list to grow with time.</p>
]]></content:encoded></item></channel></rss>