Week 2 - Lab 2: Introduction to Proxmox VE
Module: Operating Systems 3 (Virtualisation & Cloud Technologies)
Topic: Proxmox GUI, VM Management, and Container Comparison
Estimated Time: 60 Minutes
Lab Overview
In Lab 1, you learned how to run a "Virtual Machine" using raw commands (qemu/kvm). While
educational, this is not how modern Cloud Engineers work.
In this lab, you will step up to the Management Plane. You will explore the Proxmox Virtual Environment (PVE) interface, using it to deploy both a traditional Virtual Machine (VM) and a modern System Container (LXC). By doing both side-by-side, you will directly observe the performance differences between "Hardware Emulation" (VM) and "Shared Kernel" (Container) virtualization.
Objectives:
- Navigation: Master the Proxmox Web Interface (Datacenter, Node, Storage views).
- VM Deployment: Deploy an Ubuntu Server VM using the "Create VM" wizard.
- VM Operations: Perform a Snapshot and a Clone.
- The "Race": Deploy an LXC Container and compare boot speeds with the VM.
Prerequisites: - A running instance of Proxmox VE (Version 7.x or 8.x). - An ISO file (e.g., Ubuntu Server or Alpine) uploaded to Local storage. - A Container Template (e.g., Ubuntu) downloaded to Local storage.
Part 1: Proxmox GUI Orientation
-
Log in:
- URL:
https://<IP-Address>:8006 - User:
root - Realm:
Linux PAM -
The View:
-
Datacenter View: Click "Datacenter" in the top-left tree. Notice the "Summary" panel showing total CPU/RAM for the whole cluster (even if you only have 1 node).
- Node View: Click your node name (e.g.,
pve1). This shows the hardware health of the physical server. - Storage View: Expand the node and verify you see
local(Directory) andlocal-lvm(LVM-Thin).
Question: Which storage is configured to hold "ISO images"? (Hint: Click them and look at "Content" in the middle pane).
[ __________ ] - URL:
Part 2: Deploying Your First VM
We will replace the tedious qemu commands from Lab 1 with a simple Wizard.
- Click "Create VM" (Top Right).
-
General Tab:
- Node: Select your node.
- VM ID:
100(This is the unique integer ID Proxmox uses). - Name:
lab-vm-ubuntu. -
OS Tab:
-
Storage:
local - ISO Image: Select your Ubuntu/Alpine ISO.
- System Tab: Keep defaults (Graphics card, Machine Type).
-
Disks Tab:
-
Storage:
local-lvm(This is block storage for high speed). - Disk Size:
20GiB. -
CPU Tab:
-
Cores:
2. - Type:
host(Passes host CPU features for speed). -
Memory Tab:
-
Memory:
2048(2GB). - Ballooning: ✅ Checked (Allows host to reclaim unused RAM).
-
Network Tab:
-
Bridge:
vmbr0(The switch connecting to the physical LAN). - Model:
VirtIO(Paravirtualized driver). - Confirm & Finish.
Action: Watch the "Task Log" at the bottom of the screen. You should see
QM CREATE - Status: OK.
Part 3: Lifecycle Operations
- The Snapshot (Safety Net)
Before creating the VM, let's take a snapshot of the empty state.
100.* **Name**: `fresh-install`.
* **Include RAM**: Unchecked (Faster, saves disk only).
2. The Boot
- Click Console -> Start Now.
- Watch the VM boot. Proceed through the installation (or just boot to Live CD if using Alpine).
3. The Clone
Let's replicate this VM.
1. Right-click VM 100.
2. Select Clone.
* **Mode**: `Linked Clone`. (Why? It's instant).
* **Name**: `lab-vm-clone`.
-
Click Clone.
- Observation: Notice it finishes intantly! A Full Clone would take minutes to copy the 20GB disk.
Part 4: The Showdown - VM vs Container
Now we answer the question: "Why do we use Containers?"
Step A: Deploy a Container (LXC)
- Click Create CT (Top Right).
- General: Name:
lab-ct-ubuntu, Password:test. - Template: Select an Ubuntu Template (Download one in
localstorage ->CT Templatesif needed). - Resources: Give it 1 Core, 512MB RAM.
- Network: DHCP.
- Finish.
Step B: The Race
We will time how long it takes to get to a login prompt.
-
Race 1 (VM):
- Stop VM
100. - Start VM
100and open Console. - Time: How many seconds until
login:appears?[ ______ sec ]
- Stop VM
-
Race 2 (Container):
- Stop Container.
- Start Container and open Console.
- Time: How many seconds until
login:appears?[ ______ sec ]
Step C: Resource Comparison
- Leave both running.
- Go to Node -> Summary.
-
Look at the memory usage.
- The VM reserves a block of RAM (e.g., 500MB+ even if idle).
- The Container uses only what processes need (often <50MB idle).
Lab Checkpoint
- I have successfully navigated the Proxmox GUI.
- I created VM
100(lab-vm-ubuntu) using the Wizard. - I created a Linked Clone
(
lab-vm-clone). - I deployed an LXC Container using a Template.
- I observed that the Container boots significantly faster than the VM.
Reflection:
- Why did the Linked Clone create instantly compared to a Full Clone?
- In "The Race", why was the Container so much faster? (Hint: Did it have to boot a BIOS and Kernel?)