Does size matter? Share

Hello to the community.

As per the title; I am wondering about the Rockon root share size.
Note that I will only have one pool available; that of my data disks running under raid1.

Since “shares behave as directories”; when creating the Rockon root share I create a folder correct?
When I create a share under the same pool for say plex-data; is this folder in the same level as the Rockon root.
And what if I want to create a folder inside the plex-data folder? How do I achieve that?

Please forgive me if the terms I am using are a bit vague.
This is (going to be) my first go at Linux and BTRFS.

Hi,

I’ll try to give a few answers based on my experience but others more knowledgeable will probably bring further insight(s).

Theoretically it would matter, yes, as this share will host the docker containers images for the rockons you will install. However, as noted on the “shares creation page” (as far as I remember), share size is not enforced at the moment, which means that the share size you set at creation does not matter in practice. If needed, the share will simply use more space on its pool.
Please note, however, that the “share” size / use widget on the Rockstor dashboard may be incorrect in such a case, as it is (I believe) based on the share size you set upon its creation. Notably, none of this will affect Rockstor’s overall function and all will still work well.

This is where more BTRFS-knowledgeable people will correct me. A share represents a BTRFS subvolume mounted inside a BTRFS pool. Upon browsing your system, this will show, as you stated, as a folder within the pool. For instance, a pool named data-pool with the shares share1 and share2, the folder structure will look as follows:

- /mnt2/data-pool/share1
- /mnt2/data-pool/share2

This also answers you other question: yes, all shares will be at the same level of a given pool.

Typically, you wouldn’t need to do that as the Rock-on should be designed to handle this within its webUI. With Plex, for instance, it will create all subfolders needed for a nice organization of the media library.
In the event you need to manually create or alter a folder, you can simply do so with linux cli as the shares will be mounted at the locations mentioned above.
Please note that you also have the option to add a volume to Rockons that support it. Plex is one of them, for instance, and thus allows you to give the Plex Rockon access to another share if, let’s say, you want to create a separate share for TV shows than for Movies.

Hope this helps,

1 Like

Hi @Sky12016,

As mentioned by Flox, share sizes are not enforced due to the instability of BTRFS quotas at the moment.

In any case, if the share sizes were enforced later, BTRFS quotas can be dynamically adjusted without even unmounting the subvolumes, so there’s not too much to worry about.

Regarding ‘shares behave as directories’, when you create a share, Rockstor will create two directories:

/mnt2/<poolname>/<sharename>
/mnt2/<sharename>

The former is the literal location of the BTRFS subvolume, the second is a convenient mountpoint.
For example, here’s the output of a couple of entries from my mount table:

[ root@rockout (fail 0s) /mnt2/tempraid ]# mount|grep "cfg\|tempraid"
/dev/sdd on /mnt2/tempraid type btrfs (rw,relatime,space_cache,subvolid=5,subvol=/)
/dev/sdd on /mnt2/cfgWatcher type btrfs (rw,relatime,space_cache,subvolid=9188,subvol=/cfgWatcher)
/dev/sdd on /mnt2/cfgMariaDB type btrfs (rw,relatime,space_cache,subvolid=9750,subvol=/cfgMariaDB)
/dev/sdd on /mnt2/cfgNZBGet type btrfs (rw,relatime,space_cache,subvolid=304,subvol=/cfgNZBGet)
/dev/sdd on /mnt2/cfgSonarr type btrfs (rw,relatime,space_cache,subvolid=307,subvol=/cfgSonarr)
/dev/sdd on /mnt2/cfgPiHole type btrfs (rw,relatime,space_cache,subvolid=419,subvol=/cfgPiHole)
/dev/sdd on /mnt2/cfgPlex type btrfs (rw,relatime,space_cache,subvolid=306,subvol=/cfgPlex)

And the directory matching directory list in /mnt2:

[ root@rockout (pass 0s) /mnt2/tempraid ]# ls /mnt2|grep "temp\|cfg"
cfgMariaDB
cfgNZBGet
cfgPiHole
cfgPlex
cfgSonarr
cfgWatcher
tempraid

And the matching directory listing of /mnt2/tempraid:

[ root@rockout (pass 0s) /mnt2/tempraid ]# ls /mnt2/tempraid/|grep cfg
cfgMariaDB
cfgNZBGet
cfgPiHole
cfgPlex
cfgSonarr
cfgWatcher

You do not need to create these directories, Rockstor handles this.
All shares created under Rockstor are top level subvolumes within the BTRFS pool.

Regarding creating directories within the plex-data directory, Rockstor has no concept (at this point) of nested subvolumes, so this cannot be done from share management.
Your options here are

  • create the directory manually as a standard directory (this can be created inside the pool directory, or the mounted subvolume, they are ostensibly the same place on the disk!)
  • Create a subvolume manually inside the existing plex-data subvolume - I recommend against this, and have little idea of how Rockstor will respond
  • Create another BTRFS share, and sym/hard link it inside your existing plex-data directory.

And as mentioned by @Flox, for Rockons that support the feature, you can add export additional volumes to the container from any share you’ve created on your system.
For example, rather than having a directory inside your plex-data share, you could create plex-data2 and export this as an additional volume to Plex. This is how I manage my mulitiple media shares (TV, Movies, Music)

1 Like