Well to be honest it's not so ugly anymore.
But early case versions were really ugly and when I eventually created decently looking case I decided to leave its name.
Except it no longer has additional PSU for enclosure. Everything is powered using Odroid PSU.
Part | USD |
---|---|
Odroid H3+ | 165.00 |
64GB eMMC Module | 29.00 |
Samsung 32GB DDR4 | 99.00 |
Power Supply Unit | 9.40 |
2 x SATA/Power cables for disks | 6.00 |
Case Type 5 | 20.00 |
Shipping from hardkernel.com to Poland | 39.43 |
8 x Kioxia 2.5" SSD 480GB drives | ~330.00 |
6-bays enclosure | 48.29 |
PCI-E SATA extender for 6 ports | 24.80 |
6 x Profiled SATA cables | 16.74 |
MOLEX splitter | 1.71 |
SATA splitter | 1.57 |
Power extension | 0.84 |
Sum | 791.78 |
Beware that I spent much more on experimenting with different setups. The final cost above is after refining the best solution.
If you opt for a self-designed case, purchasing a fan and supports separately is necessary. From the listing you will need these parts:
- G. 1 x 92x92x25mm DC 5V Cooling Fan
- H. 1 x 92mm Stainless Cooling Fan Grill
- I. 2 x 10mm (M/F) PCB Supports
- J. 1 x 40mm (M/F) PCB Supports
- K. 2 x 40mm (F/F) PCB Supports
- L. 4 x M5 PC Fan Screws
- N. 4 x 6mm M3 Truss Head Bolts
Assembling these parts individually may save some money, but purchasing the case directly from Odroid is more convenient for acquiring all necessary components in one go.
root@nas[/mnt/storage]# /root/fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test.fio --bs=4k --iodepth=64 --size=1G --readwrite=randrw --rwmixread=80
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.25
Starting 1 process
test: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [m(1)][100.0%][r=134MiB/s,w=33.0MiB/s][r=34.3k,w=8701 IOPS][eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=691249: Mon Dec 5 18:10:27 2022
read: IOPS=22.9k, BW=89.6MiB/s (93.9MB/s)(819MiB/9142msec)
bw ( KiB/s): min=21781, max=165208, per=99.06%, avg=90861.61, stdev=42994.49, samples=18
iops : min= 5445, max=41302, avg=22715.33, stdev=10748.69, samples=18
write: IOPS=5744, BW=22.4MiB/s (23.5MB/s)(205MiB/9142msec); 0 zone resets
bw ( KiB/s): min= 5343, max=41728, per=99.04%, avg=22756.61, stdev=10894.22, samples=18
iops : min= 1335, max=10432, avg=5689.06, stdev=2723.60, samples=18
cpu : usr=5.09%, sys=78.22%, ctx=5155, majf=4, minf=7
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=209630,52514,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=89.6MiB/s (93.9MB/s), 89.6MiB/s-89.6MiB/s (93.9MB/s-93.9MB/s), io=819MiB (859MB), run=9142-9142msec
WRITE: bw=22.4MiB/s (23.5MB/s), 22.4MiB/s-22.4MiB/s (23.5MB/s-23.5MB/s), io=205MiB (215MB), run=9142-9142msec
And same test with 10M file instead of 1G:
root@nas[/mnt/storage]# /root/fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=test.fio --bs=4k --iodepth=64 --size=10M --readwrite=randrw --rwmixread=80
test: (g=0): rw=randrw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=libaio, iodepth=64
fio-3.25
Starting 1 process
test: (groupid=0, jobs=1): err= 0: pid=695373: Mon Dec 5 18:25:17 2022
read: IOPS=97.1k, BW=379MiB/s (398MB/s)(8156KiB/21msec)
write: IOPS=24.8k, BW=96.9MiB/s (102MB/s)(2084KiB/21msec); 0 zone resets
cpu : usr=0.00%, sys=90.00%, ctx=0, majf=0, minf=7
IO depths : 1=0.1%, 2=0.1%, 4=0.2%, 8=0.3%, 16=0.6%, 32=1.2%, >=64=97.5%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued rwts: total=2039,521,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: bw=379MiB/s (398MB/s), 379MiB/s-379MiB/s (398MB/s-398MB/s), io=8156KiB (8352kB), run=21-21msec
WRITE: bw=96.9MiB/s (102MB/s), 96.9MiB/s-96.9MiB/s (102MB/s-102MB/s), io=2084KiB (2134kB), run=21-21msec
With iozone:
root@nas[/mnt/storage]# /root/iozone -e -I -a -s 1G -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Iozone: Performance Test of File I/O
Version $Revision: 3.489 $
Compiled for 64 bit mode.
Build: linux-AMD64
Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
Al Slater, Scott Rhine, Mike Wisner, Ken Goss
Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer,
Vangel Bojaxhi, Ben England, Vikentsi Lapa,
Alexey Skidanov, Sudhir Kumar.
Run began: Mon Jan 16 16:52:27 2023
Include fsync in write timing
O_DIRECT feature enabled
Auto Mode
File size set to 1048576 kB
Record Size 4 kB
Record Size 16 kB
Record Size 512 kB
Record Size 1024 kB
Record Size 16384 kB
Command line used: /root/iozone -e -I -a -s 1G -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2
Output is in kBytes/sec
Time Resolution = 0.000001 seconds.
Processor cache size set to 1024 kBytes.
Processor cache line size set to 32 bytes.
File stride size set to 17 * record size.
random random bkwd record stride
kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread
1048576 4 310964 292306 1178512 1179537 173968 195313
1048576 16 293274 307902 2134753 2159181 626843 278066
1048576 512 1010432 1793142 6357664 2866019 3240346 999201
1048576 1024 798928 1539648 4325665 4094047 6342773 1731892
1048576 16384 809463 1588195 4512099 2468875 2813374 1110396
iozone test complete.
And simple dd:
root@nas[~]# dd if=/dev/zero of=/mnt/storage/file bs=1M count=10K
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 6.14285 s, 1.7 GB/s
root@nas[~]# dd if=/mnt/storage/file of=/dev/null bs=1M count=10K
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 2.27149 s, 4.7 GB/s
Feel free to ping me if you want me to run any other tests.
State | Peak | Avg |
---|---|---|
standby | - | 3.6 |
boot | 24.2 | ~17 |
idling | 17.7 | ~14 |
1 VM running | 22.3 | ~16 |
VM + stress CPU + fio test | 30.8 | ~28 |
Note: Don't try to use HDD instead of SDD with my power supply setup... it won't work almost for sure.
No. It can't.
Side note. Make sure to use the latest intel microcode or you'll end up with VM's freezing here and there pretty often. You have to have microcode version "24" to have stable virtualization.
root@nas[~]# grep -m1 microcode /proc/cpuinfo
microcode : 0x24000024
If it shows 0x24000023 then you definitely want to update it.
Yup.
Without disks it's below $500 ;)
Also it should still work pretty decent if you switch:
- H3+ -> H3 - 36$ less
- eMMC 64GB -> 32GB - $10 less
- RAM 32GB -> 16GB - $54 less
So without disks it can be built for about $375.
Odroid doesn't support hotplug for devices directly attached to it so it doesn't really make sense to make them part of enclosure.
All needed parts are listed there.