What is Proxmox?? 🤔
Proxmox VE is an open-source server management platform for your enterprise virtualization. It tightly integrates KVM hypervisor and LXC, software-defined storage, and networking functionality on a single platform. With the integrated web-based user interface you can easily manage VMs and containers, highly available clusters, or the integrated disaster recovery tools with ease. Proxmox VE is under the GNU Affero General Public License (V3), there is simple subscription structure for those who are interested in more than community support. Simplicity is great advantage of PVE over other virtualization solutions. even a novice user can setup and install it within minutes. And most importantly because it is running on Debian, all Linux experience apply.
Proxmox implements also non-Docker , container based virtualization with LXC. It provides a small wrapper called pct which I can use to connect to LXC containers after ssh to host, by just typing ‘pct enter 108’, where 108 is ID of the container. Command line can be used to manage VMs, (QEMU ‘qm’ commands, i.e. qm stop 105).
Proxmox VE provides for live migration — the movement of a virtual machine or container from one cluster node to another without any disruption of services. The cluster file system (“pmxcfs”) is a database-driven file system for storing configuration files, replicated in real time to all cluster nodes using Corosync. It is used to store all PVE related configuration files i.e.
If your mind not clear about how proxmox actually works than this architecture diagram will help you ⤏
- CPU: 64bit (Intel EMT64 or AMD64)
- Intel VT/AMD-V capable CPU/Mainboard (for KVM Full Virtualization support)
- Minimum 8GB RAM ( Recommanded 16+ or as far as you go ( There is no end of cool selfhosted things!))
- Hard Drive
- One NIC
Note: If you want to compare proxmox with any other virtualization solution or looking for any specific feature. Look it here ⤏ Proxmox vs OtherVE
Other Note - For homelab you can use old pc, laptop, any mini pc like ( Intel NUC, Hp, Lenevo, Dell Mini PC Clients ( they are around 200 - 300 $))
So, enough of intro now. Let’s install this thing.
- Step1 - Pick You USB ( 8GB Size )
- Step2 - Download Proxmox VE ISO
- Step3 - Download balenaEtcher or Rufus
- Step4 - Put yOu USB into your PC/Laptop & use any one of booting tool
- Step5 - Put your USB into you bareMetel machine ( Make sure to config boot order ) and its shows you a start screen of proxmox.
Note - If you are using Rufus make sure use
Post Installation Tasks
- Proxmox Installer show Private IP ( when installing ), now go to that IP ( https://IP:8006 ) and use your credentials ( You set when installing ) and BANG ⤏ You will see your own mini datacenter console!
Task–1 Remove Subscription Message
TASK–2 Setup Community Subscription Repo
Note - Now you can update your proxmox in future.
TASK–3 Setup a Dark Theme 😎
- Note - 👏 Thank You Creator 👏 ( So much relief to the eyeballs! )
Add Storage Drives
ZFS Pools - It is recommended by proxmox and other peoples to use ZFS Pools for Storing your VMS ( It gives you more performance and Redundancy )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
# Setup # List Drives $ ls /dev/disk/by-id # Create a pool $ zpool create -f -m <mount> <pool> <type> <ids> - create: subcommand to create the pool. - -f: Force creating the pool to bypass the “EFI label error”. - -m: The mount point of the pool. If this is not specified, then the pool will be mounted to root as /pool. - pool: This is the name of the pool. - type: mirror, raidz, raidz2, raidz3. If omitted, the default type is a stripe or raid 0. - ids: The names of the drives/partitions to include in the pool obtained from ls /dev/disk/by-id. # Eg $ zpool create -f -m /mnt/zstorage zstorage raidz2 <ids> # To check your pool $ zpool list $ zpool list -v $ zpool iostat $ zpool iostat -v # Check Proxmox Storage Manager Know it exists: $ pvesm zfsscan # configure your ZFS Pool $ zfs create zstorage/iso $ zsf create zstorage/share $ zsf create zstorage/vmstorage $ zsf create zstorage/cnstorage # To set quota $ zfs set quota=1000G zstorage/iso # To check $ zfs list $ zpool status $ zpool iostat -v # Now go to the gui -> Datacenter -> storage -> Add -> Directory -> zstorage/iso ( Make sure only “ISO image” and “Container template” are selected. ) # ...Directory -> Add -> ZFS -> Id: vmstorage -> ZFS Pool: /zstorage/vmstorage
LVM - No worries, if you have single disk ( Use LVM )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
# List disk devices with lsblk # Select a device to add # create partions $ fdisk /dev/sdb # format device $ mkfs.ext4 /dev/sdb1 # Create a physical group $ pvcreate /dev/sdb1 # Create logical group $ vgcreate vSSD /dev/sdb1 # TO add DataCenter -> Storage -> Add -> LVM --- # To add as a dir # After formatting mount the some dir $ mkdir /backup $ mount /dev/sdb1 /backup $ vim /etc/fstab /dev/sdb1/ /backup ext4 defaults 0 0 # To add Datacenter -> Storage -> Add -> Directory
Backup & Restore VM’s
Monitor Proxmox with Grafana and InfluxDB
Extra Tip - Setup a Minimal Docker Client
Author Akash Rajvanshi
LastMod Monday, January 25, 2021
License Akash Rajvanshi