My server has 8 x 15TB NVME drives. Here’s my plan:
Create a RAIDZ. Total usable space in the array will be approx. 100TB.
On top of that, create 10 x 10T drbd disks.
Create an LVM volume group from all the drbd disks.
Create a few hundred LVs with separate XFS filesystems, one for each customer.
The goal is to balance speed, manageability, and fault-tolerance.
Having all the LVs in a single volume group simplifies resource deployment.
Having 10 x DRBD disks speeds up replication between the nodes a lot, and reduces the impact of a drbd disk failure.
Having separate filesystems for each customer allows them to be grown on a per-customer basis and minimizes the impact of a corrupted filesystem.
I’m a little concerned about the complexity of having LVM on top of drbd, on top of zfs. In a failover scenario, all those filesystems would have to be unmounted and the LVs deactivated before the failover could occur.
Also, I’m already confused about storage allocation. I created a zfs pool which does not have encryption or compression:
[root@store11a ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zpool0 2.11M 93.9T 162K /zpool0
zpool0/fs 162K 93.9T 162K /zpool0
As you can see, it shows 93.9T available.
I then created a 10T linstor resource as follows.
[root@store11a ~]# lst rg spawn-resources rgroup0 drbd0 10T
But now, the zfs pool shows 17TB used.
[root@store11a ~]# zfs list
NAME USED AVAIL REFER MOUNTPOINT
zpool0 17.2T 76.8T 162K /zpool0
zpool0/drbd0_00000 17.2T 93.9T 3.69G -
zpool0/fs 162K 76.8T 162K /zpool0
What’s going on?