This is perhaps where the confusion is coming from - neither of those will show anything unless a pool is imported. To list available but not imported pools, run zpool import
(without any parameters).
As for the dbus error - I don’t think it’s related to ZFS.
For reference, I only have this in my config zfs-related:
fileSystems."/" = {
device = "tank/os/nixos";
fsType = "zfs";
};
boot.fs.requestEncryptionCredentials = true;
zfs.autoScrub.enable = true;
No other settings should be needed, using fsType = "zfs"
should enable all the necessary settings.
There’s also the thing with networking.hostId
. I see you changed it from 01
to 02
.
It needs to be static and set (i.e. nixos-rebuild switch
) before you create and import the pool for the first time. You can still import the pool if you change/set hostId after pool creation but you may need to force import it once. IIRC nixos boot scripts do a force import but I’m not 100% sure so try that manually first, maybe it will help.
Another problem I see is here:
zfs-import-tank-start[26043]: Pool tank in state MISSING, waiting
I’ve never seen this error but it suggest there is indeed something wrong with your zpool. Can you post exactly how you created it and what the command output was?
I’ll assume you did this for all tries for now:
If you had a zpool on those devices before, zfs may refuse to create the zpool saying something about “existing filesystem present”. You should either wipe the first few MB of the disks or use -f
in zpool create
.
Also, unrelated, you really don’t want to layout your zpool like this, not unless all of your sd*
are in fact some kind of hardware raid devices. With this setup, if you lose any of sd[abc]
, you will lose the entire pool. If you lose the log
device, you could possibly lose some data in transit. Also it doesn’t really make sense to create a log
device unless that device has significantly higher performance than the “storage” devices and even then you’re probably not going to see the benefits unless your workload is synchronous (i.e. databases, VMs,…) Also itt almost never makes sense to use the cache
device either - L2ARC works rather differently than people usually think. You are much more likely to benefit from using the special
device instead - look it up