Hey Karl here. The timing couldn’t have been more opportune when I was asked to review the TerraMaster F4-423 4-bay NAS. Let me explain why.
I run Unraid as my OS of choice for my home lab. I have found it easy to maintain and hard to break. My old rig had a 3900X with 3 cores, 6 threads dedicated to docker containers, and the remaining cores running VM’s. It has been a fun and learning experience.
I have run it with several different VM configurations over the past few years. The majority of the time I ran 2 VM’s. One personal and one work and I would RDP over to the work VM. If I wanted to game I had a third gaming VM and allocated all resources to it. It’s not super convenient and as convoluted as it sounds. But recently I moved back to my company-provided laptop and was liking the idea of running bare metal again.
I wanted a dedicated server but had some reservations regarding space, power, and noise. I am not a data hoarder. I have a modest collection of movies and storage is mainly for pictures and home videos. I’m going to share my experience migrating my Unraid server over to the F4-423.
The NAS is driven by an Intel-based Celeron 5095 board which I found wholly adequate for my needs.
TerraMaster F4-423 specifications pulled from the Amazon store:
- Powerful hardware: N5105/5095 Quad-core 2.0GHz CPU, 4GB RAM DDR4 (expandable up to 32GB). Dual 2.5-Gigabit Ethernet ports – Supports up to 5 Gbps under Link Aggregation. 4-bay NAS designed for SMB high-performance requirements.
- Maximum internal raw capacity: 80TB (20 TB drive x 4). Compatible with 3.5-inch and 2.5-inch SATA HDD, and 2.5-inch SATA SSD. Supports RAID 0/1/5/6/10, Supports online capacity expansion, and online migration. The built-in M.2 2280 NVMe SSD slot can realize SSD cache acceleration and increase the storage efficiency of the disk array several times.
- Multiple Backup Solutions: Centralized Backup, Duple Backup, Snapshot, and CloudSync; enhance the safety of your data with multiple backup applications.
- Easily build file storage servers, mail servers, web servers, FTP servers, MySQL databases, CRM systems, Node.js, and Java virtual machines, as well as a host of other commercial applications.
- Small-sized compact design that can be used vertically and horizontally. Features an aluminum-alloy shell and intelligent temperature control ultra-quiet fan, good in heat dissipation and Very Quiet.
Let’s review external connectivity first.
HDMI 2.0, USB 3.2 Gen 2×1. This offers 10Gbps throughput per port. I only have one high-speed device – the Elgato Camlink 4k – and during testing ran into no issues. It seems really sensitive to bandwidth limitations and would know it immediately. This was tested passthrough to a Windows VM in Unraid.
Next are two 2.5gbps Ethernet ports. These are using 1 lane each with an Intel i225i chip.
The board only supports 2280 NVMe drives. It is missing the standoffs for the shorter drives. I had a couple of 2230 SSD and tested them with Kapton tape.
Now let’s look at the PCIe config in the BIOS.
Lanes 1 and 2 are the LAN ports mentioned above.
Lanes 3 and 4 are labeled USB/LAN/UFS. This is what appears to be considered onboard ports and consumes lanes.
Lane 5 and 6 are the M.2 slots.
Lane 7 is the Asmedia ASM1061 providing two additional SATA ports
Lane 8 is not labeled with a very good description. PCI Express Root Port 8. Unused?
We have PCIe 3.0 which gives us about 0.985 GB/s or 985MB/s or 7.88 Gbps per lane.
This is the only engineering choice that raises a question for me. It looks like the two M.2 NVMe sockets only have one PCIe lane dedicated to each drive. I tried 3 drives and they all peak around this same speed. If unused I wish they used that last lane on one of the drives.
03:00.0 Non-Volatile memory controller: SK hynix BC511 (prog-if 02 [NVM Express])
Subsystem: SK hynix BC511
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 255
IOMMU group: 17
Region 0: Memory at 80100000 (64-bit, non-prefetchable) [size=16K]
Capabilities:  Power Management version 3
Flags: PMEClk- DSI- D1+ D2- AuxCurrent=0mA PME(D0+,D1+,D2-,D3hot+,D3cold-)
Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
Capabilities:  MSI: Enable- Count=1/32 Maskable+ 64bit+
Address: 0000000000000000 Data: 0000
Masking: 00000000 Pending: 00000000
Capabilities: [b0] MSI-X: Enable- Count=32 Masked-
Vector table: BAR=0 offset=00002000
PBA: BAR=0 offset=00003000
Capabilities: [c0] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 75W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
MaxPayload 256 bytes, MaxReadReq 512 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit Latency L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp+
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk+
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 8GT/s, Width x1 (downgraded)
TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt+ EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink- Retimer- 2Retimers- DRS-
LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+ EqualizationPhase1+
EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Predictable and consistent 2.8GHz boost for a few seconds then down to 2.4GHz.
I also tracked power for several weeks with a SONOFF Pow.
Lowest wattage idling with Unraid, no drives spun-up, C states enabled on left. Max Wattage 100% load with all drives spun-up with 3 magnetic, one SSD on right.
The daily average for 34 days is 0.449 kWh. This includes all the up-and-down times over those days. I feel like my daily average will be less than 0.4 kWh per day. I did 2 parity checks and believe that is where it looks a little heavy. One I did for migration and another due to a power outage. This takes about 11 hours to complete. I only recently turned on C states in the BIOS and it looks to have reduced power usage a little more. I will need more time to determine exactly how significant and ensure no downsides. Regardless it sips power in my opinion.
Here are my notes from migrating my Unraid installation to the TerraMaster F4-423. It was mostly uneventful. First I worked out how to boot Unraid. There is a USB 2.0 Type-A female directly on the board that boots into TerraMaster’s software installer. I thought about extending it outside the case but I have no need right now, but it is an option in the future. I can only foresee adding a Blu-Ray to rip movies and I still have a USB 3.2 available for that. I tinker a lot and for now, I just removed the TerraMaster drive, stored it, and installed my Unraid boot drive in one of the externally available USB ports. The second USB header looks available inside as well if needed.
I started cautiously and created a new Unraid USB drive to test with and installed one spare hard drive in the enclosure. I went with typical BIOS boot options and Unraid was booting. Posting takes a few seconds longer than on a consumer desktop. I booted and made sure everything was working. After I was confident everything was working as expected I cleaned up my production Unraid drive removing the hardware-specific configs and prepping it for the move. I only missed removing CPU pinning or else it would have been a perfect first boot. I got an error so I booted into safe mode and removed the CPU pinning and all my docker services were restored.
Transcoding was easy to enable in Unraid. I installed two plugins through the App Center: ich777’s Intel GPU-TOP which is the only thing that is required, and b3rs3rk’s GPU Statistics for monitoring. Then passthrough /dev/dri to my docker containers. This CPU has been out for a while and all the hard work is done and kinks worked out. I found some older threads and went down some rabbit holes but ultimately above is all that is required.
I only tested Jellyfin and transcoding for the most part was a non-issue. The only caveat is with H.265. My experience did not exactly match what the documentation stated. It is probably a bug.
The issue was with 4K H.265 @ 60fps in Chrome as Jellyfin was only able to transcode this file @ locked 45 fps per the log causing issues. But if I kicked it down to 1080 it transcoded @ 30 without pausing (I saw a few updates to Jellyfin and decided to check again. This seems to be a moving target. Now some of the 60fps H.265 files I had issues with are playing in Chrome direct. I did enable Chrome direct HEVC playback originally but it didn’t work. Now it seems to work on some files.) I had no issues with any other codec. That same file streamed to my Shield fine which it should according to the docs. My movies are all in 1080p H.264. I was able to get 6 direct H.264 streams going with Jellyfin. I will never need that many. Max 1 at a time here.
I don’t have the network gear to test the 2.5 GbE. Ethernet networking is taken care of by an Intel i225-V chip. It was easy to max out @ gigabit speeds. I did try to link aggregation but I could not get it to work with my Unifi switches. I believe I am going to wait a little while longer before I upgrade my switches. I want to go straight to 10 Gbps but will probably step to 5 Gbps switches first.
I have had the F4-423 and tinkered for about 45 days and overall I like it. Small and attractive looking. Quiet and sips power. I was expecting a low-power NAS and that is what I got. Fully decked out you could populate with four 20TB drives and in Unraid you would have 60TB of usable storage. Then a couple of NVME for cache, dockers, and VMs. If we say an average Blu-Ray is 35GB, that would correspond to around 1714 uncompressed movies.
I upgraded the ram with a 16GB 2933 Crucial kit.
Windows boots from an NVMe without issue. The Device Manager was a mess with unknown devices but it booted. I did not test any further than this.
I revisited setting up a LAN cache drive and it worked pretty well but I forgot about the one thing that makes it suck for a permanent setup and that is DNS being a single point of failure.
I wanted to test ripping and transcoding, but don’t have a drive right now. I think it would be a fun project to automate ripping and transcoding movies. From what I am reading this can be completely automated and the TerraMaster F4-423 should handle this fine with hardware transcoding.
Karl is a technology enthusiast that contributes reviews of TV boxes, 3D printers, and other gadgets for makers.