Proxmox storage solution help

Hi all o/

I’m setting up a small, Proxmox based home lab/server and need some advice and help choosing and setting up an appropriate storage solution. So far I have built the server, installed Proxmox VE 6.1 and set up a few containers and VMs. One of the VMs is/will be a Windows 10 based media server and this is where I need some help.

I’m trying to figure out the best way to setup storage pool for the server. I’m looking for a storage solution that would, ideally, be:

  • Expandable, i.e. would allow me to add more drives in the future (critical for me!)
  • Reasonable Read speeds for streaming audio/video files (write speeds not as important)
  • Reasonably secure from data loss (RAID5/RAIDZ) (would be nice, but not critical for now)

So far I only have 1 4TB WD Red drive for storage (in addition to couple of small SSDs for Proxmox install and VM storage), but I’ll be getting more soon. 4TB usable storage would do for now but will need to be expanded later on.

I have watched and read quite a few guides online about this, but most of them assume that you would have all the drives for a large storage pool to begin with or don’t apply in other ways. I don’t have the budget to buy all the drives I would like/need upfront, so I’m looking for a solution that would allow me to set up the initial pool and start using it and then add additional capacity to it as I acquire more drives.

I have considered a ZFS pool, ideally RIADZ as mentioned before and just passing through drives to the Windows VM and using Windows Storage Spaces.
As I understand it, Storage spaces would allow for future expansion, but I don’t really want to (maybe irrationally) deal with hardware passthrough and a fully Windows based solution. Especially since it is pretty much guaranteed that I will have to use an HBA card to add more drives, as my motherboard doesn’t have enough SATA ports.
On the other hand a ZFS pool looks to me more interesting, but I’m not sure about how/if storage expansion would work with that and how to give the Windows VM access to it. I understand that Proxmox can quite happily handle ZFS and I like the idea of dealing with the storage on the hypervisor (Proxmox) rather than Windows VM running on it.

TL;DR
In essence then, I am looking for a storage solution that would be expandable, reasonably robust, fast enough for accessing media files and would show up in the Windows 10 VM as a single drive or folder.

OK, this came out much longer and rambly than expected. Hopefully it makes some sense :stuck_out_tongue:
Any thoughts and suggestion would be very much appreciated as well as any online guides on how to actually set it all up.

Thanks! :slight_smile:

While you can create a ZFS pool with one drive, I don’t really see a point. Just format the drive with XFS or EXT4 and live with it for a while.

In my humble opinion, ZFS can be expanded, but it’s not really designed with “home user” level expansion in mind, that is, adding a drive at a time randomly. Unraid is much better suited for that.

BTW 12T western digital drives are on sale for a deep discount at Best Buy, if there’s one in your locale.

I’m assuming you want the storage to be on the same server, not a separate NAS? You weren’t clear on this. Consider if a consumer NAS like a WD myCloud would be simpler. It is also a cheap way to add storage quickly.

If you want an all in one, the simplest option would be as you say to pass the HBA through to windows and give it control of the disk controller. You can “expand” in situ, although storage spaces just spans the disks, if you lose one you lose everything.

If you have proxmox running on a beefy cpu you could just spin up a separate VM running Linux and build your pool in the VM using ZoL, or mdadm. How you build the pool is up to you, just run SMB server and share it on the network. Or run Freenas as a VM. Pass through the HBA for control of the disks.

Performance is not a concern unless you have multiGig ethernet and more than 5 concurrent users. Any single drive will saturate a 1Gbps network, and if you are using a virtual network adapter within proxmox the network will be seamless.

On the point about expandabity. I’d never recommend expanding small data arrays in situ, it is always better to build a new pool and cascade the old pool to be the backup. Expansion only works if you build in resilience to each “vdev”, which gets expensive quickly.

To make the share expandable cheaply you just need to manage your data. Your share should not be the only place you store the data (if it is important), especially if you access it on Windows (cryptolockers can infect shares).

If you can’t afford multidisk arrays from day 1, consider a tiered storage solution and disk rotation, with the shared version being the “throwaway” copy. To start with use your 4TiB drive as the pool. When you can afford it buy your next disk (hopefully bigger) and keep it “warm”, ie, light use for backups. When the 4TiB gets full, swap to your backup being the primary and keep the 4TiB ready to add to a new array. Periodic data copying is good for discovering corruption and underlying disk issues. ZFS leverages this by adding checksums and other logic, if it finds corruption it fixes by copying a known good version from another disk.