You're best off either allocating the whole disk to ZFS or none of it. Trust me on this, it gets nasty when you try to do otherwise.
I would make a ZFS pool out of the 2TiB and 1TiB drives. You'll have more spindles, which equates to more IOPS.
Depends on the games. I fit my 200ish games steam in 950GB. You can also enable ZFS transparent compression.
Okay, so if you want to use the 180GB of free space on the SSD, you'll have to repartition it. Once that space is used, you'll have an extremely difficult time getting it back, so make absolutely sure you're ready to commit to that.
To set up a ZFS pool making use of the raw space of the two large drives, all you need to do is this:
zfs create -f pool-name /dev/sdd /dev/sdb
So, you're mixing up the commands for zpool creation and dataset creation. Remember a pool is the raw storage (think of it kind of like a disk) and a dataset is a subset of data that's represented as a snapshot, filesystem or raw volume. (think of it similarly to a partition of the disk).
So, if you want to mount the root of your dataset on /media/tank
, you use the -m
flag, which sets the mount point of the pool. This is different from the mountpoint of a dataset. By default, the mountpoint of a dataset is the mountpoint of the pool, followed by the path to the dataset. EX: for tank/home/tatsu
, with pool mountpoint of /media/tank
, you would have an effective mountpoint of /media/tank/home/tatsu
for that dataset if you didn't specify -O mountpoint
on the dataset.
Now, let's build you a command that will do what you want.
# zpool create tank -m /media/tank -oashift=12 /dev/sdd1 /dev/sdb1 log /dev/sda2 cache /dev/sda3
-oashift
is not really needed, since ZFS will automatically decide what the best option is. It used to be necessary a few years back. If you're using disks with different alignments, it can be used to align to the largest alignment to improve performance across the board.
-m /media/tank
gives you your pool mount point. when creating a tank, you don't use -O mountpoint
since that is a dataset parameter. It doesn't really make sense to me why they'd use two different parameters for what is functionally the same thing, but that's just the way it is.
Now, on creating your datasets:
Close! Lower case -o
and upper case -O
are two different things. Uppercase -O
is what you want here. It gives you your dataset parameters. Again, it's silly, but once you get these nuances down, you're going to be good.
That should work just fine.
Not sure what this is for. This isn't necessary for the operation of ZFS. Unless you specifically want this dataset for some reason.
Should be good here.
Always good to have a snapshot!