SShortSingh.
Back to feed

How a homelab TrueNAS setup grew organically into a two-server, split-OS rack

0
·1 views

A self-hosted storage enthusiast ended up running two TrueNAS servers in the same rack — one on CORE, one on SCALE — not by design but through a series of incremental workload decisions made over years. The CORE server, a Dell R630, was originally built to store Chia (XCH) plot files at scale, with its pool layout shaped by the drive-count ceiling of an older SAS HBA that is no longer a constraint. When Storj, a distributed storage network requiring active read/write operations, became the next workload, it drove the addition of a SCALE server because Storj offered a native TrueNAS SCALE app but no equivalent for CORE. The result is a rack whose architecture reflects accumulated constraints and workload pivots rather than any deliberate upfront plan. The author notes the deployment raises an unresolved consolidation question and highlights how homelab realities often diverge from the clean, linear narratives common in public technical writeups.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

AWS Developer Associate Certification: Why Hands-On Practice Beats Theory

Ntombizakhona Mabaso, an AWS Certified Developer Associate, has shared her certification journey and key preparation strategies on DEV Community. She advises candidates to prioritize building real projects over passive study, arguing that practical experience makes troubleshooting and exam questions far easier to handle. Mabaso also highlights that AWS allows higher-level certifications, such as the DevOps Engineer Professional, to automatically renew qualifying lower-level credentials, offering a more efficient path to staying current. For those not yet ready to pursue a Professional-level exam, AWS Skill Builder now lets eligible certification holders renew through maintenance activities without retaking the full paid exam. Her recommended hands-on exercises include building REST APIs with Lambda and DynamoDB, setting up CI/CD pipelines, and debugging IAM permission issues within real AWS environments.

0
ProgrammingDEV Community ·

How to Properly Evaluate a Testing Tool Beyond Feature Checklists

Most testing tool evaluations rely on feature grids, but nearly every serious tool supports the same standard capabilities, making such comparisons misleading. A more effective approach starts by mapping recurring work — such as maintaining selectors, investigating failures, and managing credentials — and estimating the time each currently consumes. Tools should also be stress-tested with intentional failures, like broken locators or expired sessions, to assess the quality of failure evidence they produce. Evaluations should use workflows that reflect real application risk, such as PDF exports or asynchronous downloads, rather than simple login demos. For load testing, key factors include shared reporting, versioned scenarios, and clear pass/fail thresholds — not just the ability to generate requests.

0
ProgrammingDEV Community ·

Public const constructors can silently bypass Dart factory validation logic

A Dart developer discovered that public const constructors in concrete schema classes created an unguarded back door around factory method validation in the instructor_dart package. While factory methods like Schema.string() and Schema.enumeration() enforced rules such as regex validity and non-empty lists, calling the raw constructor directly skipped all those checks entirely. The flaw meant a broken regex pattern would only surface later during matching rather than at the point of authoring, making bugs harder to trace. The root cause is that Dart's const constructors are restricted to field assignments and assert statements, preventing them from throwing proper exceptions. The issue was resolved in version 0.4.0 by replacing public const constructors with private named constructors, forcing all instantiation through the validated factory methods.

0
ProgrammingDEV Community ·

Horizontal vs Vertical Scaling: Why Stateless Apps Handle Traffic Spikes Better

A developer's side project built on a single Node.js EC2 instance collapsed under sudden traffic after a streamer shared its URL, pushing CPU to 99% and triggering out-of-memory errors. The experience prompted a deeper look at the two core scaling strategies: vertical scaling, which upgrades a single machine's resources but hits cost and capacity ceilings, and horizontal scaling, which distributes load across multiple identical instances. The key obstacle to horizontal scaling was the app's reliance on in-memory session storage, local caching, and disk writes, all of which broke when traffic was routed to new nodes. The solution required making the application stateless by offloading session and cache data to external services like Redis or a shared database. This architectural shift allows instances to be added or removed dynamically, eliminates single points of failure, and often reduces costs compared to running one oversized server.

How a homelab TrueNAS setup grew organically into a two-server, split-OS rack · ShortSingh