Hello. New to the group so please forgive me if I missed where this has already been answered. I have search extensively but I don't believe I have found anyone with the exact same situation. Here goes....
I have built a homelab that will be used for various purposes and VMs (i.e. Frigate, Ollama, Home Assistant, MQTT, NAS, mail server, media store...).
I have multiple NVMe and HDD drives that I intend to use as follows for speed and ease of management, backups, recovery...THEORETICALLY:
- One 1TB PCIe 5 NVMe: Proxmox OS, VMs, Containers...
- One 1TB PCIe 4 NVMe: Data storage for all VMs and Containers with a separate data folder for each
- One 512GB PCIe 4 NVMe: For ISO images...
- One 2TB HDD: Backup 1
- One 2TB HDD: Backup 2
So, for each of the VM/Containers, I intend to mount or otherwise define a location where each can store their logs, databases, docs, other files... Everything from the NVMe drives will periodically be backed up to the HDD drives (alternating, not RAID, for now).
For storing the VM/Container data, here is what the folder structure might look like on the 1TB PCIe 4 NVMe drive (vm-data):
/mnt/vm-data/frigate-data
/mnt/vm-data/ollama-data
/mnt/vm-data/ha-data
/mnt/vm-data/mqtt-data
...
I see that there are a variety of options for adding storage from Datacenter->Storage->Add such as Directory, LVM, NFS, ZFS... Depending on how the drive is setup, we then have options for mounting the drive using the config files such as /etc/pve/qemu-server/100.conf but everything I have tried feels clunky or just plain wrong.
My question is...what is the preferred/best practices way to define/configure a data drive to allow the VMs/Containers to access/deposit their data onto their respective folders while running them on a different drive?
Edit:
After further research on this topic, I can confirm that I am even more confused now. My expectation is not that there is a single perfect answer for this situation but that at least there is a preferred approach that balances complexity with practicality.
So, I will ask my question again but with options, as I understand them, to choose from.
With the goal of keeping the LVM and LXCs (i.e. Frigate, PostgreSQL, Home Assistant...) on one drive and their respective application data (i.e. photos, logs, databases...) on a different drive, which of these options is the preferred approach and how is it accomplished?
- Setup some sort of NAS VM that controls access to the separate "data" drive by limiting each VMs access to specific folders on that drive?
- Use NFS share directly from Proxmox Datacenter for the separate "data" drive that can somehow be seen by each VM by creating some mountpoint?
- Setup a Directory from Datacenter that is somehow accessible by each VM?
- Setup a shared pool from pve?
- Create a separate virtual store for each application (i.e. frigate-data, postgresql-data, ha-data) that will be added as a disk from each VM?
- ......
Thanks in advance for any advice.
I have built a homelab that will be used for various purposes and VMs (i.e. Frigate, Ollama, Home Assistant, MQTT, NAS, mail server, media store...).
I have multiple NVMe and HDD drives that I intend to use as follows for speed and ease of management, backups, recovery...THEORETICALLY:
- One 1TB PCIe 5 NVMe: Proxmox OS, VMs, Containers...
- One 1TB PCIe 4 NVMe: Data storage for all VMs and Containers with a separate data folder for each
- One 512GB PCIe 4 NVMe: For ISO images...
- One 2TB HDD: Backup 1
- One 2TB HDD: Backup 2
So, for each of the VM/Containers, I intend to mount or otherwise define a location where each can store their logs, databases, docs, other files... Everything from the NVMe drives will periodically be backed up to the HDD drives (alternating, not RAID, for now).
For storing the VM/Container data, here is what the folder structure might look like on the 1TB PCIe 4 NVMe drive (vm-data):
/mnt/vm-data/frigate-data
/mnt/vm-data/ollama-data
/mnt/vm-data/ha-data
/mnt/vm-data/mqtt-data
...
I see that there are a variety of options for adding storage from Datacenter->Storage->Add such as Directory, LVM, NFS, ZFS... Depending on how the drive is setup, we then have options for mounting the drive using the config files such as /etc/pve/qemu-server/100.conf but everything I have tried feels clunky or just plain wrong.
My question is...what is the preferred/best practices way to define/configure a data drive to allow the VMs/Containers to access/deposit their data onto their respective folders while running them on a different drive?
Edit:
After further research on this topic, I can confirm that I am even more confused now. My expectation is not that there is a single perfect answer for this situation but that at least there is a preferred approach that balances complexity with practicality.
So, I will ask my question again but with options, as I understand them, to choose from.
With the goal of keeping the LVM and LXCs (i.e. Frigate, PostgreSQL, Home Assistant...) on one drive and their respective application data (i.e. photos, logs, databases...) on a different drive, which of these options is the preferred approach and how is it accomplished?
- Setup some sort of NAS VM that controls access to the separate "data" drive by limiting each VMs access to specific folders on that drive?
- Use NFS share directly from Proxmox Datacenter for the separate "data" drive that can somehow be seen by each VM by creating some mountpoint?
- Setup a Directory from Datacenter that is somehow accessible by each VM?
- Setup a shared pool from pve?
- Create a separate virtual store for each application (i.e. frigate-data, postgresql-data, ha-data) that will be added as a disk from each VM?
- ......
Thanks in advance for any advice.
Last edited: