[SOLVED] Can't create VMs on ZFS pool

jkilbreth

New Member
Jun 8, 2020
14
2
3
37
It's very possible (maybe likely) that I'm doing something wrong, but here's what I'm failing to accomplish:
I have 8 disks (in addition to the two disks I set up as a mirrored raid for the PVE installation) physically connected to my PVE server. I created a ZFS pool (raidz2) with four of them, hoping to store all the VMs I'm going to make there.
But when I go to make a VM or a container, the ZFS pool is not listed as an option for VM storage.
Any idea what I'm doing wrong or what step I've missed?

Thanks in advance, folks!
 

Dunuin

Famous Member
Jun 30, 2020
8,165
2,046
149
Germany
You need to add your pool to Proxmox manually. Proxmox doesn't automatically seach for available pools.
If you want to use the GUI for that: "Datacenter -> Storage -> Add -> ZFS"

Also keep in mind that raidz2 with only 4 drives might not be the best solution, because you loose atleast 50% of your raw storage, like with Raid10, but Raid10 would be much faster. If you really want to use raidz2 (better high availabilty is the only benefit I see because 2 drives are allowed to fail) you should change the volblocksize before creating your first VM or you will most likely waste 2/3 of your raw capacity.
 

jkilbreth

New Member
Jun 8, 2020
14
2
3
37
You need to add your pool to Proxmox manually. Proxmox doesn't automatically seach for available pools.
If you want to use the GUI for that: "Datacenter -> Storage -> Add -> ZFS"
Okay, I destroyed the zpool and have decided on raidz1 instead of raidz2 (thanks for the insight and help on that, BTW).
But I seem to still be having the same problem...

Here's the steps I took when I tried to redo the process:
1. Created the ZFS - PVE>nodename>Disks>ZFS>Create: ZFS
2. Set ZFS pool name and created pool - Selected disks>RAID Level: RAIDZ>Checked "Add Storage">Create
3. Went to add the pool to Proxmox manually - Datacenter>Storage
4. Noticed that the ZFS pool I just created was already listed there, but thought maybe I should add the storage anyway (maybe that's the step I missed?) - Datacenter>Storage>Add-ZFS>set the ID>ZFS Pool: selected the pool I just created in step 2>clicked "Add"
5. Now I have two new storage items in my datacenter.

Went to create the new container for my Pihole service:
1. PVE>Create CT>set hostname and password>Next>Storage: The only storage in the list is "local"...?

Did I still do it wrong?

EDIT: I mistook the "Template" tab as referring to the storage that the CT would be using.

It seems that I don't need to add the storage manually at the datacenter level (although that would've been a good troubleshooting step, had I described the issue better).

The problem was that when I was creating the container/VM, I mistook the "Template" tab (where you select the storage you want to get the template from) as the storage location that the to-be-created VM/container's disk would be located.

Thanks for the help, all the same!
 
Last edited:
  • Like
Reactions: Dunuin

Dunuin

Famous Member
Jun 30, 2020
8,165
2,046
149
Germany
Okay, I destroyed the zpool and have decided on raidz1 instead of raidz2 (thanks for the insight and help on that, BTW).
But I seem to still be having the same problem...

Here's the steps I took when I tried to redo the process:
1. Created the ZFS - PVE>nodename>Disks>ZFS>Create: ZFS
2. Set ZFS pool name and created pool - Selected disks>RAID Level: RAIDZ>Checked "Add Storage">Create
3. Went to add the pool to Proxmox manually - Datacenter>Storage
4. Noticed that the ZFS pool I just created was already listed there, but thought maybe I should add the storage anyway (maybe that's the step I missed?) - Datacenter>Storage>Add-ZFS>set the ID>ZFS Pool: selected the pool I just created in step 2>clicked "Add"
5. Now I have two new storage items in my datacenter.

Went to create the new container for my Pihole service:
1. PVE>Create CT>set hostname and password>Next>Storage: The only storage in the list is "local"...?

Did I still do it wrong?

EDIT: I mistook the "Template" tab as referring to the storage that the CT would be using.

It seems that I don't need to add the storage manually at the datacenter level (although that would've been a good troubleshooting step, had I described the issue better).

The problem was that when I was creating the container/VM, I mistook the "Template" tab (where you select the storage you want to get the template from) as the storage location that the to-be-created VM/container's disk would be located.

Thanks for the help, all the same!
Yes, if you create the pool using the GUI it will add that pool for you on its own. Many people do it on CLI ("zpool create" command) to be able to do more advanced stuff. If you do that you would need to add the pool afterwards.

Still make sure to change the volblocksize. With the default value of 8K, an ashift of 12 and 4 drives in raidz1 you are still loosing 50% of your total pool capacity and not just 25%.
If you are using ashift 12 you would need to increase your volblocksize to something like 64K and you would only losse around 27% of your capacity.
You need to do that before creating your first virtual disk because it can't be changed later.
 
  • Like
Reactions: jkilbreth

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get your own in 60 seconds.

Buy now!