Hardware - guydavis/machinaris GitHub Wiki

Temporary Plotting Space

Ram Disk for Madmax Plotting

Unraid Ram Disk

Open Unraid terminal window, type the following

mkdir /mnt/ram

mount -t tmpfs -o size=115G tmpfs /mnt/ramdisk

Add path into your Machinaris setup as a Volume mount:

  • Host Path: /mnt/ramdisk
  • Container Path: /ramdisk

Then on the Settings | Plotting page of Machinaris, uncomment 'directories => tmp2' and use the in-container path (/ramdisk).

RAID-0 to Combine SSDs

RAID-0 for Unraid

Unraid offers a Cache Pool to speed up writes to the Arrays. I would not recommend using your primary Cache Pool for temporary plotting space as it will contend will your other's Applications (Plex, ...). Instead, you can add dedicated SSDs into another Cache Pool, specifically for Temp plotting. This Cache Pool can be a RAID-0 brtfs mount, using striping for faster writes.

First off, install your temporary plotting SSDs into your Unraid server and start it up. You should see 2 or more SSDs appear under the Unassigned Devices section. With your array stopped, use the Unraid UI to create a new Cache Pool, call it 'temp' or similar. Assign both your new SSD drives to this new cache pool.

Initially, Unraid will place the SSDs into RAID-1 for redundancy so the new temp volume will look half the size of the combined drives. To change to a RAID-0 drive, go to the Unraid Console and issue the following, assuming the pool is mounted at '/mnt/temp':

btrfs balance start -dconvert=raid0 -mconvert=raid1 /mnt/temp

Once converted, you should see the cache pool showing the full combined size of your SSDs. Here's an example from my system:

Cache

Note, the top pool is my smaller pair of consumer SSDs handling regular appdata etc for Unraid. The second pool named 'Temp' is my pair of high-endurance SSDs in RAID-0. This appears as '/mnt/temp' on my Unraid system, which I mount in Machinaris at the in-container '/plotting' mountpoint.

RAID-0 for Windows

Given a pair of high-endurance SSDs, you can use Windows Storage Spaces to create combined volume in a RAID-0 (striped) format to use for temporary plotting space. Once the drives are in your system, open the Storage Spaces control panel and chose 'Create a new pool and storage space'. Chose 'Simple' (aka No Resiliency) to get RAID-0, which means full space of all drives is available.

Cache

I've got this combined volume mounted as my T: drive, which is then mapped into the Machinaris container at the in-container path of '/plotting'.

RAID-O for Linux

Haven't tried this, but sounds like mdadm is the way-to-go here. Looks like command would be:

mdadm --create /dev/md0 --verbose --level=stripe devices=2 /dev/nvme0n1p1 /dev/nvme1n1p1

Format and mount the RAID disk and connect the single combined (full-size) drive into Machinaris docker container like this: -v '/mnt/md0':'/plotting':'rw'

Final Farming Drives

Virtual Drive for Unraid

Consider using a Pool of devices. This is separate from your main Cache Pool (SSDs likely) and from the main Unraid Array (parity redundancy). For Chia final plot storage you don't want SSDs or redundancy.

Virtual Drive for Windows

See Storage Spaces as outlined above.

Virtual Drive for Linux

Check out mergerfs as a way of combining multiple drives into a large virtual device.