I would like to install over the two disks. I'm not sure which partitions are best installed on SSD and would welcome advise on how to split various mountpoints.
Fist off, you can't assign partitions to zfs datasets, you can only assign partitions to zpools. This means you must have at least two separate zpools if you want to manually control which zfs dataset goes where. FYI, I use 3 zpools: bsdroot, build & mydata.
My HDD partitions:
Code:
SSD: ada0 GPT (56G)
bios (51K)
bsdroot (53G)
zil (3.0G)
grub (64M)
Spindle: adaX GPT (932G)
swap (6.0G)
build (100G)
mydata (386G)
free - (440G)
My ZFS dataset names & mount-point:
Code:
bsdroot /
bsdroot/usr /usr
bsdroot/var /var
bsdroot/ccache /build/poudriere/ccache
build /build
build/git /build/git
build/s11a /build/s11a
build/s386 /build/s386
So basically, you can see that root is on the SSD and so is
ccache, which has its mount-point changed to the
build pool. zpool
build is where I have
/usr/src and
/usr/ports (under compressed dataset
build/git) and any other git pulls.
s11a and
s386 are the
poudriere jails based on AMD and 386 architecture.
I have two spindle HDD's;
mydata pool is mirrored and
build zpool works as 2-disk JBOD (it's now really fast for compiling). The ZIL partition on the SSD is part of
build pool but I don't think it has made much of a difference.
Can I repartition the system without having to reinstall?
You tar all the pools you want to move to an empty partition, you boot into a FreeBSD live system (liveCD or mfsBSD) and procedd to destroy or re-size the partitions in question, then create the zpools, etc, as described on
https://wiki.freebsd.org/RootOnZFS/GPTZFSBoot.
So in a sense no, it can't be done without a partial re-install process.
With the setup I described, you cannot have a mirrored
bsdroot because the I/O difference between SSD and spindle HDD will drag the zpool performance down to the level of the spindle HDD, thus rendering it pointless to place
bsdroot on the SSD.