We All Start Somewhere
Welcome to this comprehensive guide designed for experienced system administrators and DevOps engineers looking to set up a self-hosted environment using Pro....
# We All Start Somewhere: Building a HomeLab Proxmox VE Server with 3TB HDDs
Welcome to this comprehensive guide designed for experienced system administrators and DevOps engineers looking to set up a self-hosted environment using Proxmox Virtual Environment (VE). This tutorial will walk you through the installation, configuration, and management of a Proxmox host with multiple 3TB HDDs.
Introduction
Starting from scratch can be daunting, but it’s essential for growth in our field. Today, we’ll tackle a common homelab setup: a Proxmox VE server with a modest N150 CPU, 16GB RAM, and 3TB HDD storage. This guide will provide a practical, hands-on experience, teaching you how to effectively manage infrastructure, optimize performance, secure your environment, and troubleshoot common issues.
Prerequisites
System Requirements
- CPU: N150 or equivalent (2 cores recommended)
- RAM: 16GB DDR4 minimum
- Storage:
- M.2 SSD for the system drive (500GB minimum)
- 3 x 2.5” HDDs with a total capacity of 3TB or more
- Network Interface: At least one Ethernet port
- Bootable USB stick or DVD with the Proxmox VE ISO image
Software Requirements
- Proxmox VE version 6.4 or higher
Network Requirements
- Static IP address within your local network (e.g., 192.168.0.X)
- Port 8006 for web interface access (optional, but recommended)
- Firewall rules to allow SSH, HTTP/HTTPS, and VM traffic
User Permissions
As a homelab environment, it’s assumed you have root or sudo access.
Installation & Setup
Install Proxmox VE following the official documentation. After installation, configure your network settings using nmcli
or your preferred networking tool.
Configuration
ZFS Storage Pool Creation
Create a ZFS storage pool for your HDDs:
1
zpool create poolname mirror /dev/sdX plex ashift=12
Replace poolname
with a suitable name, and /dev/sdX
with the first available drive (e.g., /dev/sda
). Repeat this command for each additional drive, replacing /dev/sdX
accordingly. Set the ashift value based on your drives’ sector size (12 for 4K sectors).
ZFS Datasets Creation
Create a root dataset and an LVM logical volume within it:
1
2
3
4
5
6
7
8
9
10
zfs create poolname/root
zpool set failmode=2 poolname
zfs set mountpoint=/ poolname/root
zfs set compression=lz4 poolname/root
pvcreate /dev/zvol/poolname/root
vgcreate vg0 /dev/zvol/poolname/root
lvcreate -L 100%FREE -n lv-data vg0
mkfs.ext4 /dev/mapper/vg0-lv-data
mount /dev/mapper/vg0-lv-data /mnt/datastore
Configure LVM and Ext4 parameters as needed for your use case, such as setting up snapshots or RAID configurations.
Usage & Operations
Common Commands
pvecm
: Proxmox command line interfacezpool list/status
: Check your storage pool statuszfs list
: List ZFS datasets and their propertiesvmqm create
: Create a new VM using the QEMU/KVM hypervisor
Monitoring & Maintenance
- Use the Proxmox VE web interface for monitoring VMs, storage, and network settings.
- Use tools like
top
,iostat
, andvmstat
to monitor system performance.
Backup & Recovery
Create regular ZFS snapshots and back up your data using rsync or other backup solutions.
Troubleshooting
Common Issues
- Insufficient resources: Ensure your system meets the minimum requirements for running multiple VMs.
- Disk issues: Check the storage pool status, correct any errors with
zpool repair
, and replace faulty disks if necessary.
Conclusion
By following this guide, you’ve learned how to set up a Proxmox VE server with 3TB HDDs, manage storage using ZFS, and create virtual machines. With the foundational knowledge gained, explore more advanced topics such as network configuration, containerization, and automation tools.
Continue your journey in DevOps and systems administration with these resources: