Pool vs dataset vs partitions vs vdev vs zvol vs disks: Or, afew questions about terminology

Ive been spending a lot of time trying to learn about truenas and the mechanics of it. I want to get away from big tech and self-host as much as I can.

Right now, I find a lot of the terminology is what’s holding me back. If I may, id like to explain what I think these words me, and if I’m wrong, can you please correct me.

· Disks: the physical spinning drives that the vdev sits across.

· Vdev: the software that creates different variations of RAID or mirrored disks. Its virtual disk, pretending to be a big disk but actually the physical part is multiple separate disks

· Dataset: The equivalent of a partition in windows? A collections of folders and directories

· Pool: the space created by the vdev, depending on the raid config and allocated size. Additionally, the space where all the datasets live. The disks that make up the vdev

· Zvol: Similar to a dataset but with the added bonus of being able to limit capacity of virtual disk.

I found a lot of diagrams in google, they are mostly the same but some slight differences.

Questions

A) Dataset partitions

Can a dataset be allocated to a user through its own ip address on the network? If I want to allocate 2tb to a user for them to use, totally separate to my datasets, can that be done? Does it matter if they use mac and I use windows?

For example, if I have a RAID5 config with a pool capacity of 100TB, can I allocate a ‘drives’ like this:

  1. For myself: 80tb – E: drive (only accessible from my windows system)
    
  2. For another user 20TB F: drive (only accessible from a users mac system)
    

I found an article online very helpful, can’t post the link here. In the article the author shows a ZFS diagram which includes the word partition, but I have seen other people say that partition is a windows only thing.

B) Zvol and its differential from datasets

Aside from being able to limit cacacity, what is the difference of Zvol from datasets?

On my system at the moment. I have a acess to a drive on truenas through my PC and it appears as a removable disk. I only created a dataset, but is it a Zvol?

I’m not aware of a way to do this by IP address; the typical way would be by username/password. And yes, quotas are possible in TrueNAS.

A zvol is a virtual block device–it acts like a disk. TrueNAS uses zvols for two things:

  • virtual drives for virtual machines
  • Storage that’s going to be shared using iSCSI

No.

See also:

1 Like

Yes. Of course, they could be SSDs, files, etc too…

They are essentially “vdev members”

· Vdev: the software that creates different variations of RAID or mirrored disks. Its virtual disk, pretending to be a big disk but actually the physical part is multiple separate disks

A collection of “disks” forms a vdev, or virtual device. a collection of virtual devs (special or otherwise) forms a pool.

· Dataset: The equivalent of a partition in windows? A collections of folders and directories

Yes and no. Its like a partition, in that it has a filesystem… but one of the things that makes ZFS different to prior filesystems is it merges the concept of disk format and file system…

A dataset is most accurately described as a “file system”. You can have multiple file systems on a pool. Files can’t be “moved” between file systems, but can be copied and then deleted.

So, the file systems behave like partitions would in a legacy disk format… but you can have as many of them as you want, and they do not map physically to areas on the disk, they’re just part of the pool of storage… not even “carved” out.

· Pool: the space created by the vdev, depending on the raid config and allocated size. Additionally, the space where all the datasets live. The disks that make up the vdev

This is mostly true. One of more vdevs make up a pool. There can be multiple pools.

Filesystems (datasets) and Volumes (zvols) are then allocated/created on the pool.

· Zvol: Similar to a dataset but with the added bonus of being able to limit capacity of virtual disk

Sort of. In the same way that a dataset is a “partition” (and its not), a zvol is actually a partition (its not).

A Zvol is a block device which is allocated on a pool, and exposed in the device hiererachy, that you can then format with a file system, and use in the same fashion as other block devices…

ZFS is not like earlier file systems, and trying to map earlier concepts onto it doesn’t work so well :wink: