Phase 1 — What it is, and how it fits together#
6 lessons · Level: beginner
This phase tells you what VirtFusion does, how it is arranged inside, and what each word means.
What is in this phase#
| Lesson | What you learn |
|---|---|
| 1 — What VirtFusion is, and the problem it solves | The layer VirtFusion adds on top of plain KVM, and what it leaves to you |
| 2 — The control server and the hypervisor | What each part does, and the port they speak on |
| 3 — The words you need | The words that come back in the other six phases |
| 4 — Licences and what they cost | One key for each cluster, and a VM limit for each node |
| 5 — The ports you must open | Which port must be open, and in which direction |
| 6 — VirtFusion or Proxmox: a first look | Where the purpose of the two products differs |
Lesson 1 — What VirtFusion is, and the problem it solves#
In plain words#
You have a bare-metal server. You want to divide it into VPS and sell them.
You can do this with KVM alone. Then you must build everything yourself: the customer panel, IP allocation, OS templates, bandwidth accounting, the VNC console, and the billing connection.
VirtFusion gives you that layer. It is not a hypervisor itself. Plain Linux KVM runs below it, with libvirt and QEMU. VirtFusion sits on top and gives management, a panel, and an API.
What it gives you#
| It gives | What that means |
|---|---|
| Two panels | One for the administrator, one for the customer |
| The VM lifecycle | Create, build, start, stop, rebuild, resize, delete |
| IP management | IPv4 and IPv6 blocks, automatic allocation, rDNS |
| OS templates | Linux and Windows templates, based on cloud-init |
| A console | VNC in the browser, with no SSH |
| Traffic accounting | Bandwidth count and limit for each server |
| Backups | Incremental backups, with more than one storage backend |
| A billing connection | Modules for 7 billing systems, WHMCS among them |
| An API | A full REST API. You can script every task |
What it does not give you#
- It does not do the billing. Invoices, payment gateways, and tax belong
to a separate system. The one exception is the hourly credit in Self Service. See phase 6.
- It does not run containers. There is no LXC and no Docker, only full VMs.
- It does not configure network switches. VLANs and routing stay your work.
Lesson 2 — The control server and the hypervisor#
In plain words#
VirtFusion installs in two parts. If you do not understand this division, the rest stays unclear.
| Part | What it runs | How many you need |
|---|---|---|
| Control server | The web panel, the API, the database, the task queue | One for each cluster |
| Hypervisor | KVM, libvirt, and the real VMs | As many as you want |
The control server runs no VM. It only gives instructions. The hypervisor obeys the instructions and reports the result.
How they talk to each other#
customer browser ──443──▶ control server
│
│ 8892 (HTTPS, both directions)
▼
hypervisor 1 … n
│
customer browser ──5900+───────┘ (VNC console)- The control server sends work to the hypervisor on port 8892.
- The hypervisor reports back on the same port. Open it in both directions.
- The VNC console goes from the customer browser straight to port 5900+
on the hypervisor.
Both on one machine?#
This works for a test, but it is not advised. With NAT it does not work at all, because the proxy ports collide. See phase 3, lesson 4.
Lesson 3 — The words you need#
In plain words#
Every object in VirtFusion has one exact name. You do not have to learn this table, but come back to it. The other six phases use these words.
| Word | What it means |
|---|---|
| Hypervisor | One bare-metal node, where the VMs run |
| Hypervisor Group | A set of hypervisors. Usually one location is one group |
| Server Distribution | The rule for which node inside a group gets a new VM |
| Package | A resource plan: vCPU, RAM, disk, traffic, and a number of IPs |
| Server | One VM |
| Template | An OS image, ready for cloud-init, that a server is built from |
| Media | Where the templates and the ISO files are kept |
| IP Block | An IPv4 or IPv6 range that is allocated to a hypervisor |
| User | A customer account |
| extRelationId | The user id in your own system, joined to a VirtFusion user |
| Provisioner | A script that runs at first boot (bash, python, or cloud-init) |
| Queue / Task | Background work. Builds, reboots, and backups all queue here |
| Self Service | The arrangement where a customer makes and deletes servers |
| Resource Pack | The resource quota a customer gets for Self Service |
| Asset | Hardware such as a GPU or a USB device, passed through to a VM |
| Elevate | A temporary change to a server, to commit or to discard later |
extRelationId — the most important idea here#
Put the user id from your own application, or from WHMCS, into VirtFusion as the extRelationId. Then you do not have to remember the internal VirtFusion user id. You can find the user with your own id:
GET /api/v1/users/{your-system-user-id}/byExtRelationRule: Do not keep the VirtFusion user id as the primary key in your own database. Between your id and the VirtFusion user,
extRelationIdis the only reliable link. If a user is deleted and made again, the internal id changes. Your id does not.
Lesson 4 — Licences and what they cost#
In plain words#
One licence covers one cluster. It is tied to the control server. However many hypervisors you have, you need only one key. But you must choose a tier for each hypervisor.
| Tier | Maximum VMs on that hypervisor |
|---|---|
| Unlimited | No limit |
| 35 servers | 35 |
| 5 servers | 5 |
| 1 server | 1 |
| Branding Removal | Removes VirtFusion branding. This is an add-on |
You can use different tiers together under one licence. For example, use Unlimited on a large node and 5 on a small test node.
Practical points#
- You can upgrade or downgrade at any time from the account portal, if no
invoice is unpaid.
- The licence locks to the control server. To move it to a new server you
must re-issue it, and the number of re-issues is limited.
- If you open more than one account with the same details, the accounts can be
cancelled automatically.
CAUTION: Keep NTP running on the control server. If its clock is more than 60 seconds away from real time, licence validation fails. Compare the time with
chronycorntpdate.
Lesson 5 — The ports you must open#
The port list#
| Component | Port | Protocol | Direction | Purpose |
|---|---|---|---|---|
| Control server | 80 | HTTP | Inbound | Get the SSL certificate (ACME) |
| Control server | 443 | HTTPS | Inbound | The panel and the API |
| Hypervisor | 8892 | HTTPS | Both directions | Control server to hypervisor traffic |
| Hypervisor | 5900+ | VNC | Inbound | The console. One port for each session |
UFW is installed and running on the hypervisor by default. Remember this when you add rules.
CAUTION: If a VM has no internet but the host does, UFW is blocking the routed packets. This is the most common cause. Correct it on the hypervisor:
BASHufw default allow routed
Common mistakes#
- Port 8892 is open in one direction only. The hypervisor never shows as
"commissioned".
- Ports 5900+ are blocked. The console shows a black screen.
- The IP of the control server changed and the hypervisor does not know. Every
call returns a 401 error. Phase 7, lesson 3 corrects this.
Lesson 6 — VirtFusion or Proxmox: a first look#
In plain words#
Both run KVM. The difference is the purpose.
| VirtFusion | Proxmox VE | |
|---|---|---|
| Who it is for | Hosting providers, many tenants | System administrators, your own infrastructure |
| Customer panel | Yes, from the start | No. Everyone sees the administrator UI |
| Containers | No | Yes, LXC |
| Storage | local, Ceph, StorPool, Lightbits, remote FS | LVM, ZFS, Ceph, NFS, iSCSI |
| Clustering | Control server and nodes. No quorum needed | Corosync quorum, QDevice |
| HA failover | No. If a node fails, recovery is manual | Yes, but it needs fencing |
| Billing connection | Modules for 7 billing systems | None |
| Licence | Commercial, one for each cluster | Free. A subscription is optional |
In short: to sell VPS, use VirtFusion. To run your own servers, use Proxmox. The full comparison and the migration path are in phase 7.
At the end of phase 1 you can#
- Separate what VirtFusion gives you from what it does not
- Say what the control server does, and what the hypervisor does
- Give the meaning of each of the main words
- Explain how a licence is counted
- Say which port is needed, and why
Next: Phase 2 — Installation