Issue differentiating pool vs. dataset in GUI

Status
Not open for further replies.

TFAiSO

Dabbler
Joined
Jul 25, 2017
Messages
44
Hi there,

I have searched a lot in this forum to find some answers to my issues but I can't find it.
When I run zfs list, I can see the following:

Code:
root@freenas:/mnt/megavolume/dataset1 # zfs list
NAME														  USED  AVAIL  REFER  MOUNTPOINT
freenas-boot												 2.50G   213G	64K  none
freenas-boot/ROOT											2.48G   213G	29K  none
freenas-boot/ROOT/11.1-U4									 750K   213G   836M  /
freenas-boot/ROOT/11.1-U5									2.47G   213G   845M  /
freenas-boot/ROOT/Initial-Install							2.25M   213G   825M  legacy
freenas-boot/ROOT/Wizard-2018-03-08_11:05:13					1K   213G   835M  legacy
freenas-boot/ROOT/default									6.37M   213G   831M  legacy
freenas-boot/grub											7.02M   213G  7.02M  legacy
megavolume												   22.4T  47.9T   176K  /mnt/megavolume
megavolume/.system										   19.2M  47.9T  1.55M  legacy
megavolume/.system/configs-839d4bf50898424ab2b76c72b7c93def  16.0M  47.9T  16.0M  legacy
megavolume/.system/cores									  751K  47.9T   751K  legacy
megavolume/.system/rrd-839d4bf50898424ab2b76c72b7c93def	   176K  47.9T   176K  legacy
megavolume/.system/samba4									 559K  47.9T   559K  legacy
megavolume/.system/syslog-839d4bf50898424ab2b76c72b7c93def	176K  47.9T   176K  legacy
megavolume/dataset1										  22.4T  47.9T  22.4T  /mnt/megavolume/dataset1


vs. the attached image file: freenas_dataset_image.png

When I look in the GUI the icons look the same for my pool and the dataset. I have now moved all important data that were in dataset childs who were residing in/mnt/megavolume/dataset1 into the root of mnt/megavolume/dataset1.

My questions:
1. How can I differentiate which are pools and which are datasets from the GUI?
2. Can I move my 22TB of files from the root of the dataset /mnt/megavolume/dataset1 into the pool root /mnt/megavolume ?
3. Instead of deleting the dataset dataset1, can I resize it to make room for the other two new datasets I wish to create?
4. Newbie as I am, is the following dataset design wise?
1 dataset for all handheld devices+laptops ,so laptops can run TimeMachine and users can access shared folders
1 dataset for NextCloud
1 dataset for Ubuntu (to run CrashPlan and backup from the other datasets containing important files)
1 dataset for media (approx 22TB and growing)

Thank you sincerely for your time. You are great!
 

sretalla

Powered by Neutrality
Moderator
Joined
Jan 1, 2016
Messages
9,703
Pools are only ever top level items in the GUI.

The pool gets a root dataset named the same as the pool (causing your confusion here I guess).

After that it's all up to you.

You can promote datasets (if they are at 2nd level after the pool root or deeper) to bring them up one level without the need to copy data.

Operations between datasets will always be a copy (with a delete at the end if it's a move), so you need double the storage available in order to do that if required... don't forget to manage your snapshots in that case as the snapshot will still hold the files deleted since the snapshot as consumed space on the pool.

In regard to resizing, you can probably see the available space for all datasets is the same for those in the same pool (unless you set a quota on them, which you can change), so no need to do anything with that as far as I can see.
 

adrianwi

Guru
Joined
Oct 15, 2013
Messages
1,231
I just tend to forget about the very top GUI entry, and think of the 2nd one as the pool and anything under that as a dataset. If you have everything in /mnt/megavolume/dataset1, that's fine. Just create the structure you want and then move things from /mnt/megavolume/dataset1 to /mnt/megavolume/whatever. Don't worry if you don't get it perfectly, as you can create or delete datasets as your understand more about what you need.

From my experience, separating out the databases and files when installing Nextcloud makes sense, so you can replicate/backup accordingly.

I think having separate datasets for anything using TimeMachine for backup also makes sense, as it keeps everything clean and tidy.

You don't need to create any datasets for VMs as the system will do this when you set up and install them.

Oh, how I wish I had all that space left to fill ;)
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
When I look in the GUI the icons look the same for my pool and the dataset. I have now moved all important data that were in dataset childs who were residing in/mnt/megavolume/dataset1 into the root of mnt/megavolume/dataset1.
I think you have a basic misunderstanding of how this works. You can't put any file data in the pool. The pool holds datasets and you put your data in datasets. You can put as many datasets in the pool as you want (almost) because the dataset (all by itself) only needs about 176 kilobytes of space. Think of the 'pool', which FreeNAS calls a 'volume' for some unknowable reason, as a swimming pool that you can put buckets in. Then you can think of the dataset as a bucket that you can put files into. You can define a dataset to have size limits, but the default is that any dataset can expand to fill the entire pool but all the datasets share the space of the pool. You have to add drives to expand the pool, but you can always make the pool bigger and all the vdevs can keep getting bigger too.

Does that help?

Here are some documents for further reading:

Slideshow explaining VDev, zpool, ZIL and L2ARC
https://forums.freenas.org/index.ph...ning-vdev-zpool-zil-and-l2arc-for-noobs.7775/

Terminology and Abbreviations Primer
https://forums.freenas.org/index.php?threads/terminology-and-abbreviations-primer.28174/

Also, there are many good references linked from here:
http://doc.freenas.org/11/freenas.html
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
2. Can I move my 22TB of files from the root of the dataset /mnt/megavolume/dataset1 into the pool root /mnt/megavolume ?
No. The pool doesn't hold files, only datasets hold files.
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
1. How can I differentiate which are pools and which are datasets from the GUI?
It is painfully simple. You only have one dataset under your pool.
 

TFAiSO

Dabbler
Joined
Jul 25, 2017
Messages
44
I do understand that I can only put files in datasets, and not into pools. My issue is that the GUI is confusing as it's not clearly showing if a menu item is a pool or a dataset, as the icons are the same. No texts are indicating the same. I heard there's a way to find out what are datasets if one is comparing the commands: zfs list with mount
I tried to create a directory and copy some files into /mnt/megavolume ,this worked fine. Apparently /mnt/megavolume is a dataset after all?
This should imply I can move everything now in dataset1 into /mnt/megavolume

When I run mount I see this:
Code:
root@freenas:~ # mount
freenas-boot/ROOT/11.1-U5 on / (zfs, local, noatime, nfsv4acls)
devfs on /dev (devfs, local, multilabel)
tmpfs on /etc (tmpfs, local)
tmpfs on /mnt (tmpfs, local)
tmpfs on /var (tmpfs, local)
freenas-boot/grub on /boot/grub (zfs, local, noatime, nfsv4acls)
fdescfs on /dev/fd (fdescfs)
megavolume on /mnt/megavolume (zfs, local, nfsv4acls)
megavolume/dataset1 on /mnt/megavolume/dataset1 (zfs, local, nfsv4acls)
megavolume/.system on /var/db/system (zfs, local, nfsv4acls)
megavolume/.system/cores on /var/db/system/cores (zfs, local, nfsv4acls)
megavolume/.system/samba4 on /var/db/system/samba4 (zfs, local, nfsv4acls)
megavolume/.system/syslog-839d4bf50898424ab2b76c72b7c93def on /var/db/system/syslog-839d4bf50898424ab2b76c72b7c93def (zfs, local, nfsv4acls)
megavolume/.system/rrd-839d4bf50898424ab2b76c72b7c93def on /var/db/system/rrd-839d4bf50898424ab2b76c72b7c93def (zfs, local, nfsv4acls)
megavolume/.system/configs-839d4bf50898424ab2b76c72b7c93def on /var/db/system/configs-839d4bf50898424ab2b76c72b7c93def (zfs, local, nfsv4acls)
tmpfs on /var/db/collectd/rrd (tmpfs, local)


Here's a simple "proof":
Code:
root@freenas:/mnt/megavolume # mkdir test
root@freenas:/mnt/megavolume # echo helloWorld > ./test/hellofile.txt
root@freenas:/mnt/megavolume # ls -lat ./test
total 2
-rwxrwxr-x+ 1 root	wheel  11 Aug  5 12:37 hellofile.txt
drwxrwxr-x+ 2 root	wheel   3 Aug  5 12:37 .
drwxrwxr-x+ 4 Rikard  wheel   5 Aug  5 12:36 ..
root@freenas:/mnt/megavolume #

 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
When I run mount I see this:
Stop looking at the command line. Why are you looking there to begin with?

Look at this video and see if it helps you understand:
 
Last edited:

TFAiSO

Dabbler
Joined
Jul 25, 2017
Messages
44
Hi , that was a very informative video. Thanks!!
I think I get it now. When I create a pool, there's a second GUI line created showing what you mentioned as "properties of the pool". I thought this second line/iteration was a dataset. I tried to create files in the pool root, and as I showed above, it is indeed possible. I thought files and folders could only be created in datasets. Anyhow, now that I have a large dataset without quota, I can put a quota on it, and create multiple datasets under the pool, simliar to what you have done.

In my case I can see in the GUI:
megavolume compression: -
-> megavolume compression: lz4
-> dataset1 compression: inherit (lz4)

What's really confusing is that the second GUI line stating megavolume, has an icon at the bottom called: "promote dataset". Since this is apparently not a dataset at all, why having that icon there, together with another icon called "destroy dataset". In the GUI it's called dataset but it's not, if I get it right.
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
I tried to create files in the pool root, and as I showed above, it is indeed possible.
Although it is possible, it is not recommended in the same way that you are not supposed to put all your data in the root of your OS drive. Different properties are defined by the datasets which is where you are supposed to put your data.
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
PS. The root of the pool is technically able to store files and folders but this is where FreeNAS puts any system folders that they don't want the user to access. It is just not where you are supposed to put your data and if you use FreeNAS through the GUI, it won't let you. You were only able to do it because you were messing around in the shell where you can break things. FreeNAS is built to work a certain way because it is an appliance. If you want to to whatever you want, you need to use regular BSD instead.
has an icon at the bottom called: "promote dataset".
Where would it be promoted to? There is no higher level, you can't promote a dataset to a pool. If you click that, it will tell you that the file system is not a clone or has already been promoted.
together with another icon called "destroy dataset".
If you do that, it will tell you (on a red warning screen) that it will destroy all files within the dataset and child datasets.
 

TFAiSO

Dabbler
Joined
Jul 25, 2017
Messages
44
Noted and agreed. I have now created a few new datasets under the pool as recommended. Thank you all for the clarifications! I have of course read the manual but there isn't an awful lot written on this specific topic.
 

Chris Moore

Hall of Famer
Joined
May 2, 2015
Messages
10,080
Noted and agreed. I have now created a few new datasets under the pool as recommended. Thank you all for the clarifications! I have of course read the manual but there isn't an awful lot written on this specific topic.
Agreed, there is room for improvement in the documentation.
It is just a matter of having enough people to get it all done. Huge project, few workers.
 

Ericloewe

Server Wrangler
Moderator
Joined
Feb 15, 2014
Messages
20,194
More technical explanation:
A ZFS pool is a generic store. Datasets, which are implemented in the DSL (Dataset and Snapshot Layer), actually provide a POSIX filesystem layer.

In practice, you always have a top-level dataset named after the pool. That's where everything goes, including the other datasets.
 
Status
Not open for further replies.
Top