Incubator4

Incubator4

github
steam
nintendo switch

NAS Operations #0 Building a Highly Available System-level ZFS NAS

Introduction#

Since the NAS I used before was a 4-bay RAID 6 solution with four 4TB Red drives, the total capacity was only half, and it was not enough for me after storing a large amount of multimedia and backup data. So this year, I started considering building a larger NAS.

Configuration#

  • Motherboard: MSI B450 Motar Matx, which I found in the warehouse
  • CPU: AMD Ryzen 5 3600, which comes with the motherboard, is completely sufficient for a NAS
  • Memory: 16GB*2 taken from an old computer
  • Chassis: Shooter 8-bay Matx chassis, purchased with fan and power supply kit
  • System drive: Western Digital SN730 * 2, ZFS Mirror
  • Storage drive: Western Digital HC320 10TB SMR vertical drive

Architecture#

The solutions I considered are Openmediavault and TrueNAS. I value TrueNAS for its ZFS system drive solution, but the core version uses virtual machines, and the scale version uses a single machine Kubernetes with ZFS local PV integration. Although it can be used and debugged, the components are too complex.

Therefore, I decided to use the Openmediavault + OpenZFS solution. I continue to use ZFS because I used this solution before. When one drive had a problem, I cleared the error and replaced the drive directly with hot swapping. After waiting for two days, everything was fine, and it did not affect data read and write during that time.

For the 8-bay data, I will use RAID-Z2 with two parity drives, achieving a utilization rate of 75%.

The system drive will use ZFS Mirror, pure mirroring.

System Installation#

Mainly refer to the solution of Root On ZFS, which allows the use of ZFS for high availability at the system level.

There are a few points to note:

  1. The disk needs to use the By-ID scheme because it provides a unique and unchanging address compared to schemes like /dev/sda, and it comes with a suffix like -partX that corresponds to the respective partition.
  2. The official documentation is for single drives, but I am using a Mirror solution, so the create pool command needs to be modified accordingly (I don't think anyone would do RAID-5 or higher on the system drive, as it is not worth the effort).
  3. Since the boot EFI does not need to be part of the ZFS Mirror and only needs to be installed once, it can be copied later using the dd command.

Then, you can install Openmediavault (referred to as OMV later) following the official documentation Install on Debian.

The advantage of OMV is that the built-in NFS and Samba/CIFS solutions are already friendly to mounting, and it also supports plugins for Time Machine.

As for Docker, since Debian is already installed, you just need to mount the corresponding directories.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.