As per the previous post, I was having problems with the swap partitions on my main FreeNAS 11 server. All the swap partitions were there, but were not being used until manually mounted. It turns out that FreeNAS now has a new way of using these – it seems to set up mirror devices using
gmirror and uses these for swap. There are a couple of gotchas here – the first is that if you do a gmirror list on a working system you will see:
The command line to create the mirror is:
# gmirror create -b prefer swap0 /dev/nvd0p1 /dev/nvd1p1
(in this case, I’m creating the first swap on my NVMe cache drives. Note that the standard 2 Gb partition 1 of type swap is already present on all the data drives).
Note that pretty much all the guides out there use
gmirror label – this gives you a
type: AUTOMATIC mirror. We don’t want this, presumably because FreeNAS has it’s own scanning system for these things.
Verify the mirror exists:
# gmirror list Geom name: swap0 State: COMPLETE Components: 2 Balance: prefer Slice: 4096 Flags: NONE GenID: 0 SyncID: 1 ID: 3774900941 Type: MANUAL Providers: 1. Name: mirror/swap0 Mediasize: 2147483648 (2.0G) Sectorsize: 512 Mode: r0w0e0 Consumers: 1. Name: nvd0p1 Mediasize: 2147483648 (2.0G) Sectorsize: 512 Stripesize: 0 Stripeoffset: 65536 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: (null) GenID: 0 SyncID: 1 ID: 2013054055 2. Name: nvd1p1 Mediasize: 2147483648 (2.0G) Sectorsize: 512 Stripesize: 0 Stripeoffset: 65536 Mode: r1w1e1 State: ACTIVE Priority: 1 Flags: (null) GenID: 0 SyncID: 1 ID: 1984168260
Then test the detection logic:
midclt call disk.swaps_configure
This should return
Looking at the logs, this also encrypts the swap, creating a device
It also appears to automount it, as it then appears when you do a
Note that the system log complains about the other swap devices I set up earlier, so it may be it’s only really happy with encrypted swap.
You can create more mirrors and run midclt call disk.swaps_configure again. After that swapinfo should show you all the details:
# swapinfo -h Device 1K-blocks Used Avail Capacity /dev/mirror/swap0.eli 2097152 632M 1.4G 31% /dev/mirror/swap2.eli 2097152 25M 2.0G 1% /dev/mirror/swap1.eli 2097152 25M 2.0G 1% Total 6291456 682M 5.3G 11%
This setup should in theory automatically work on reboot. Unfortunately, as this hosts lots of VM disk images I don’t want to test this anytime soon…