Noob homelab build with extra features on one host

PantoffelSlippers

New Member
Joined
Mar 28, 2022
Messages
3
Reaction score
1
Credits
71
Good day all,

Hope everyone around here is doing well.

Disclaimer: I’m a total Linux noob about to tackle his first project and this is also then my first post.

As short as I can keep it, here is my story (project I’m about to start):

  • It’s basically a home server with some freedom to play around with (homelab)
  • I have one physical server(host) to work with (4 hdd bays for data and one small SSD for OS)
  • My requirements are:
    • Keep it all linux (cause I wanna learn and it seems cool)
    • Stay on the one physical host I have (for the moment)
    • Have virtualization capability (to test and play around)
    • Have functionalities on this homelab environment for:
      • Download / torrent sever
      • Media server
      • NAS / storage for people in my house to store picture & backups etc.
      • Temporary virtualization to play around with (temp VM’s etc)


My current plan of action is:
  • Keep the host lean & clean, install ONLY virtualization OS (Proxmox) – no other functionality.
  • Keep the SSD (OS Drive) for proxmox installation
  • Keep one of the HDD bays for storing VM’s (the VHD’s or whatever they called in linux) - only the OS in the vhd's.
  • Keep the other HDD 3 bays for data storage
  • Create one VM to act as NAS – FreeNAS or something to manage the drives in the 3 HDD bays
  • Create one VM to act as download / upload / torrent server – the VM itself will run on hdd 1 and use storage from the FreeNAS vm to store stuff on the other 3 bays
  • Create one VM to act as media server. Same as above. VM runs on hdd1 and use storage from the other 3 bays via the FreeNAS VM for media content.
  • All other testing, playing around etc etc will require their own separate VM’s.
  • So Proxmox then (installed on the SSD) is only aware of HDD1 on which it stores all its VHDs. The VM's interact with the shared storage across 3 hdds managed by FreeNAS vm.


Sorry for the long story but I thought that better than just posting a one-liner “how do I do homelab”.

Here’s my question: Any comments on my plan of action? Recommendations or alternative setups? Stuff I got horribly wrong?

Some side notes: I’m not looking to get side tracked with containers now unless really really relevant to my scenario. I started off by thinking I’ll do an Ubuntu or some general server install on the host and then install virtualization, NAS, torrents and media server all as “applications” on the ubuntu server and only VM for whatever I wanna play around with. If my homework is correct it seems things like proxmox and freeNAS ect rather operate as a single, full OS / distro and not an application.

I’ll figure out separating the VM network from my home network separately.

Much appreciated all

Cheers
 


f33dm3bits

Gold Member
Gold Supporter
Joined
Dec 11, 2019
Messages
4,624
Reaction score
3,329
Credits
33,554
I'm running Proxmox to host my on vm's at home as well, here's my setup:
- 1T nvme ssd for installing Proxmox
- 2T sata ssd for vm storage pool
- 8T WD red for media storage pool which is dedicated for one of my vm's.

I'm currently running 1 vm as an application server running server applications(Apache, Mysql, Plex etc.) and the other server running as an nfs server with vpn and torrent and usenet setup. I'm currently using only 1 bay so I have 7 bays left if I want to expand my vm or media storage pool.
I started off by thinking I’ll do an Ubuntu or some general server install on the host and then install virtualization,
Just use Proxmox if you are already familiar with it and if not using Proxmox will give you an easier time to manager you virtualization setup.
If my homework is correct it seems things like proxmox and freeNAS ect rather operate as a single, full OS / distro and not an application.
Proxmox is basically a customized Debian installation with a customized Proxmox kernel, nothing more nothing less. My setup basically has the same goal as yours so that I can run vm's that I'm actually using and that I can create vm's for lab purposes.
 
Last edited:

Brickwizard

Well-Known Member
Joined
Apr 28, 2021
Messages
2,583
Reaction score
1,721
Credits
19,379
Welcome to the forums
Disclaimer, I am a hardware man not a programmer, so I will keep it general, hardware wise what you intend doing is not a problem, choice in the way you do it may be, sit tight for a few days whilst our members running servers can make their input, [we are scattered across all continents and time zones]
please prepare yourself [as a novice to Linux] for quite a steep learning curve, to change from Windows or Mac to Linux is a big step, do not rush at it, take your time, and be prepared to hit a few snags on the way, I am sure you will be more than happy with the results in the end,
So kick off your shoes, Relax, grab a beer, don't rush yourself, and enjoy the ride

Bwiz
 
OP
P

PantoffelSlippers

New Member
Joined
Mar 28, 2022
Messages
3
Reaction score
1
Credits
71
Hi, looks like I'm moving away from the proxmox idea for now. I can't quite figure out how I would make that work.

For now: settling with a more basic setup using a decent general purpose linux distro on bare metal and add applications to fullfill the required functionalities I need. Will use qemu or something to add virtualization for experimental and playing around purposes.

Someone also recommended OpenZFS to me... Lots of home work for me. This is all completely new to me.

Also first battling (well, not battling but working) through a few hardware challenges. I dug two fried HP Microserver N40l's out of storage and combined parts to get one working machine. Unfortunately I'm short on RAM between the two machines. Currently only 4GB. Will fix that in coming days. Playing around also with a BIOS mod on the N40l that helps lift the microserver's 8 GB RAM limit. I'll then purchase new memory modules and probably end up with 16 GB soon.

This BIOS mod already allowed me to boot Ubuntu off a new SSD connected to the microserver's optical drive SATA port. Now I have the 4 hard drive bays (on a miniSAS port I think) available for data.
 

f33dm3bits

Gold Member
Gold Supporter
Joined
Dec 11, 2019
Messages
4,624
Reaction score
3,329
Credits
33,554
Hi, looks like I'm moving away from the proxmox idea for now. I can't quite figure out how I would make that work.
Can you try to explain what part of the Proxmox setup you don't understand? Qemu/kvm will do fine that as Proxmox is based on kvm.
 
OP
P

PantoffelSlippers

New Member
Joined
Mar 28, 2022
Messages
3
Reaction score
1
Credits
71
Can you try to explain what part of the Proxmox setup you don't understand? Qemu/kvm will do fine that as Proxmox is based on kvm.
Hi. There is something in the linux world I'm battling to wrap my head around and I think this is tripping me up here when it comes to the proxmox discussion.

The concept I'm not yet grasping is this - I currently work on the assumption that:
- Some functionalities (on Linux), you get by installing an application onto an Operating System. For example, if I need word processing I will install LibreOffice on my Ubuntu Desktop. I guess this is similar to the windows world where you always have windows as the operating system and you install roles and applications on windows for whatever you need.
- Then there's this concept where some functionalities you obtain by setting up your bare metal with - what I call - a single-use Operating System. Think pfSense, motionEyeOS etc - these are "applications" but they actually become the operating system. For example, I've had a raspberry pi with MotionEye OS. These are not apps / roles you deploy to a general purpose OS like Ubuntu; and as such, they almost render your device (rpi or server) to a single use. You can probably still deploy additional apps to these "single-use" OS's since they are still somehow based on the same linux kernel and based on Debian or something but I carry no confidence in how accurate that statement is or how clean / suitable / best preactise this would be.

I have no idea how accurate the above summation is. That's my noob view of the linux world.

Now, coming back to proxmox: based on the youtube vids I've seen on proxmox, proxmox fits into the second category above i.e. it would render my server to a single-use role which is virtualisation (via proxmox) and I get all my other features through VM's (including NAS). Now up to this point my design might be fine - no one told me yet it's wrong or bad design; but, I'm losing confidence in the design of having proxmox in bare metal, then have a VM to fulfil the NAS role so that all the other VM's (like media players) could use the storage presented by the NAS VM for their data (like movies etc).

So that's the whole long story to come to the point of: I'm losing confidence in the design of having proxmox in bare metal, then have a VM to fulfil the NAS role so that all the other VM's (like media players) could use the storage presented by the NAS VM for their data (like movies etc).

Does that explanation make any sense?

Thanks for the conversation - sometimes it's fun being a complete beginner again in something.
 

f33dm3bits

Gold Member
Gold Supporter
Joined
Dec 11, 2019
Messages
4,624
Reaction score
3,329
Credits
33,554
Some information about Proxmox.
As short as I can keep it, here is my story (project I’m about to start):
  • It’s basically a home server with some freedom to play around with (homelab)
  • I have one physical server(host) to work with (4 hdd bays for data and one small SSD for OS)
  • My requirements are:
    • Keep it all linux (cause I wanna learn and it seems cool)
    • Stay on the one physical host I have (for the moment)
    • Have virtualization capability (to test and play around)
    • Have functionalities on this homelab environment for:
      • Download / torrent sever
      • Media server
      • NAS / storage for people in my house to store picture & backups etc.
      • Temporary virtualization to play around with (temp VM’s etc)
Yes this is possible in short this would what you would do.
1. Install Proxmox on physical host
2. Setup a vm storage pool or pools for different purposes.
3. Decide how you want to logically setup your network, I just used the default bridge and set specific ranges for specific vm purposes.
4. Create a vm for a downloading/torrenting server(with needed virtual hardware specs) and when installing the os on the vm assign a static ip.
5. Create another vm and do the same for your Media server(with needed virtual hardware specs) and when installing the os on the vm assign a static ip.
6. Create another vm and do the same for your Nas server(with needed virtual hardware specs) and when installing the os on the vm assign a static ip.

For networking I used the default bridge setup which gives you access to your lan network range, I then decided what ip adresses I wanted to use for what purposes. Say you local lan is this 192.168.1.0/24, your gateway would be .1, then what I did is I assigned the ip 192.168.1.10 to my proxmox server. I then decided for myself I would use .20-.30 for my production vm's such as lamp/media server, my nas server and other production vm's I may need or want for daily use. Then I decided to use .40-.50 for using to setup test vm's which are temporary or for just trying out and learning new things. There are other ways to do it but that's how I did it just to keep it simple.
My current plan of action is:
  • Keep the host lean & clean, install ONLY virtualization OS (Proxmox) – no other functionality.
  • Keep the SSD (OS Drive) for proxmox installation
  • Keep one of the HDD bays for storing VM’s (the VHD’s or whatever they called in linux) - only the OS in the vhd's.
  • Keep the other HDD 3 bays for data storage
  • Create one VM to act as NAS – FreeNAS or something to manage the drives in the 3 HDD bays
  • Create one VM to act as download / upload / torrent server – the VM itself will run on hdd 1 and use storage from the FreeNAS vm to store stuff on the other 3 bays
  • Create one VM to act as media server. Same as above. VM runs on hdd1 and use storage from the other 3 bays via the FreeNAS VM for media content.
  • All other testing, playing around etc etc will require their own separate VM’s.
  • So Proxmox then (installed on the SSD) is only aware of HDD1 on which it stores all its VHDs. The VM's interact with the shared storage across 3 hdds managed by FreeNAS vm.
As I tried to explain before my setup is similar to what you are wanting to do so yes your setup is possible.
My hardware:
- cpu: Ryzen 7 5700G
- motherboard: MSI B450 Tomahawk Max II
- Normal hd: WD Red Plus 8T
- Antec P101
- cpu cooler: Be Quiet! Pure Rock 2
- ram: 64G G.Skill Aegis
- psu: be quiet! Pure Power 11 600W CM
- sata ssd: Samsung 870 QVO 2TB
- nvme ssd: Samsung 970 Evo Plus 1TB

Here's what I then did for my setup:
1. I installed Proxmox on the nvme ssd.
2. I then setup two storage pools:
- One storage pool for media which is only used for my data partition for my nas vm.
- One storage pool for vm's, from this storage pool I created new vm's so this is the location where
the os disk is from.
3. Create lamp/media server and use the vm storage pool for the os disk.
4. Create nas server use the vm storage pool for the os disk an dI also assigned secondary disk from the media storage pool. This way the os disk is from the pool which uses the sata ssd disk and the disk where my media files and such are stored are located on a disk which uses the media storage pool which is created from the normal hd. I use this nas vm to share my files through nfs with other systems on my network.

Keep in mind in mind for the media storage pools on the host I first created an lvm setup with two volume groups so that if I add a disk two my host I can easily expand the pool size on the hosts, after which I then can add more disk to the vm's. Also on the vm's I use lvm setup for the same reason so that I can easily add disk and increase the volumes when needed. I'm not going to go into depth about that here but you can start by reading this. As for how the vm's are storaged, they can be either stored as thin/thick lvm, qcow2 or raw format. You will have to decided what you want and needed, I chose to use raw format.

So in short my setup is about the same to what you want, I only have Proxmox installed on the physical host and everything else that I use are setup as vm's running on Proxmox. So yes your setup plan works because it works for me.

I might have gone into too much detail but don't let that scare you off, if you have questions plenty of people who are willing to help you with your questions. Lastly Proxmox has really good documentation so be sure to check that first if you don't understand something before asking here.
 
$100 Digital Ocean Credit
Get a free VM to test out Linux!

Members online


Top