I am new to Rockstor and will be setting up a new server for the primary purpose as a NAS. I am also planning to use OwnCloud and possibly Plex Server. I have a few questions so I do this correct the first time. I have read just about everything I can find in the Rockstor documents and they just lead me to more questions.
Here are the basic spec of the new server:
Supermicro X11DPI-NT motherboard
2x Xeon 3104 6 Core CPU’s
32 GB DDR4 RAM
Dual 10Gbps NICs
1x 256GB M.2 (boot drive)
14 direct attached SATA drives:
**2x 240GB SSD
**12x 3TB WD Red NAS drives
Additional direct attached SATA drives will be added in the future with an additional controller for video camera storage (4x 4TB WD Purple drives).
I’m not sure if it was a good idea or a waste of resources but during the installation, because this system only has 32 GB of RAM, I bumped up the swap to 50GiB and left the remaining ~188GiB for the OS pool.
The basic questions I have are related to setting up pools and shares. I want to use the SSD drives for the Rock-Ons or as write cache. The Rock-Ons will need to use the NAS shares for data storage. How should I proceed? How many and what size pools and shares would you create?
Thanks for the help in doing it right the first time.
First, I think you’re massively overstating your memory requirements.
My system has 16Gb of RAM, and runs Plex, Sonarr, Watcher (CouchPotato equiv), NZBGet, OwnCloud, OpenVPN and NetData without any issues. I have not needed to play with swap levels at all.
Regarding the pools and shares:
BTRFS does not do SSD cacheing (at least, not right now), so with your requested config you’d want to create a pool of the SSDs, and then another pool of the disks.
Rockstor uses whole disks for the pools. Personally in your case I would create two pools as outlined in the previous point.
For your requested config, create a share on the SSD-pool for the rockon-root, then create shares as required for the Rockons in your Rust-pool. The amount of shares required will depend on exactly what Rockons you install, but the install page for each Rockon will show what it requires (at minium), create the shares as you.
Don’t worry about the share sizes for the time being, due to BTRFS immaturity, quotas are not enforced. When they eventually are, BTRFS is designed to be entirely dynamic. You can adjust this on the fly later.
Thank you for your advise @Haioken, I only bumped up the swap to try and get some use out of the remaining space on the M.2 drive. Is there any other use I can get from the boot drive?
I will create a single RAID1 pool from the SSDs (SSDPool) and a single RAID10 pool from the other disks (MainPool). I would prefer RAID6 but it looks like there are known issues at the moment. Hopefully, when the RAID5/6 issues are resolved, I will be able to simply convert the RAID10 to RAID6.
When it comes to shares, what do you recommend? I can create the OS share for the Rock-Ons in the SSDpool but I want the data from those micro-services to be stored in a share on the MainPool. For example, I want OwnCloud to run in a Docker Container but I want all the user data to be saved in a share on the MainPool. The same for the Plex server or any other micro-service I run.
Traditional NAS shares are simple, I plan on creating separate shares for each purpose on the MainPool. One share for VMWare ESXi datastores, another for each share that will be migrated from the Windows file server that’s being replaced, etc. Once I add the video drives, I will create another pool with a single share for security video storage.
Not really. I use mine as scratch space when writing Rockon JSON files for custom docker instances, as well as some scripts and cronjobs, but my boot SSD is largely untouched.
As you mentioned, create the Rockon root on the SSD pool.
Without knowing exactly what Rockons you plan to use, I cannot specifically advise how you create the remaining shares.
Each Rockon defines what shares it requires (at minimum).
For example, when installing Plex, the docker container itself will be installed into the Rockon root, and plex requires 2 additional shares to begin with:
A config share (I called mine cfgPlex)
A data share (I called mine media)
When installing Plex, it will ask you what defined shares you want to assign to these…
In this case, you would create the two shares outlined above in your HDD pool, and then use the Rockon install wizard to assign them to your Plex rockon.
With Plex (and some other Rockons) you can add additional shares post install, so you can potentially have different shares for movies, TV, music, etc.
Regarding ESXi data stores, it’s worth noting that the CoW functionality is a dog when it comes to small writes on large files (such as virtualization images!), so if you’re planning to store your VMDK files on there it would be advisable to hit the shell afterward and disable CoW for those files, or the storage directory they’ll be in.
See This blog post.
You can create a special transcode share for plex on the ssd and in advanced options show plex where that is. You will have to add the share to the rockons storage through the ui after stopping the plex rockon.
I’m unsure of the real benefits of this, but it can’t hurt!
To top that, I’m running pretty much the same (plus some websites using PHP-FPM, as well as a MySQL database I still have to phase out) on a Celeron-powered HP microserver with a whopping 6Gb of RAM. I think you’ll be more than fine.