VF VirtFusion Documentation
বাংলা

Phase 7 — Operations and comparison#

6 lessons · Level: intermediate

This phase is the work that keeps the system alive: the monthly routine, the commands, the errors you meet most, and the choice between VirtFusion and Proxmox.

What is in this phase#

LessonWhat you learn
1 — The security checklistThe tasks to do each month
2 — CLI referenceThe commands that work when the panel does not open
3 — Common problems and their correctionsThe errors that arrive most often
4 — Updates, PHP, and moving the control serverUpdate and move the system safely
5 — VirtFusion against Proxmox VEThe full comparison, and which one for which work
6 — Run both, and the migration pathKeep both, or move from one to the other

Lesson 1 — The security checklist#

Look at these once each month#

TaskHow
Patch the host kernel and rebootThis is the one real correction for a KVM escape
Update VirtFusionThe control server and every hypervisor
Make sure that administrator 2FA is onOn every administrator account
Update the administrator IP listvfcli-ctrl admin:ip-restrict list
Examine the API tokensDelete the unused ones, and look at the IP lock
Test a backup restoreA backup that was never tested is not a backup
Look at the trusted hostsUpdate the list when the domain changes

The KVM vulnerabilities of 2026#

NameCVEWhat it reaches
JanuscapeCVE-2026-53359x86, both Intel and AMD. A use-after-free in the KVM shadow MMU
ZapscapeCVE-2026-64561x86, and especially AMD and some Intel configurations
ITScapeCVE-2026-46316arm64 only. A double-free in the vGIC-ITS emulation

What to do: install the patched kernel of your distribution, and reboot. On x86, until the patch arrives, the interim measure is to keep nested virtualization off. On arm64 there is no way except the patch.

CAUTION: Do not turn the QEMU sandbox off. Without a very special reason, do not change /etc/libvirt/qemu.conf. It is a layer of security.


Lesson 2 — CLI reference#

The control server — vfcli-ctrl#

BASH
# accounts and access
vfcli-ctrl user:reset-admin-password
vfcli-ctrl system:reset-access-credentials
vfcli-ctrl tfa-force-off
vfcli-ctrl captcha-off

# administrator IP restriction
vfcli-ctrl admin:ip-restrict enable
vfcli-ctrl admin:ip-restrict disable
vfcli-ctrl admin:ip-restrict addip IP_TO_ADD
vfcli-ctrl admin:ip-restrict delip IP_TO_DELETE
vfcli-ctrl admin:ip-restrict list

# hypervisors
vfcli-ctrl hypervisor:force-remove
vfcli-ctrl hypervisor:re-commission

# servers
vfcli-ctrl server:password show SERVER_ID
vfcli-ctrl server:dnd enable SERVER_ID
vfcli-ctrl server:dnd disable SERVER_ID
vfcli-ctrl server:creation-date SERVER_ID '2026-08-01 00:00:00'
vfcli-ctrl server:configurations HYPERVISOR_ID --options=network

# traffic
vfcli-ctrl server:traffic-statistics reset-all
vfcli-ctrl server:traffic-statistics reset-all --include-datastore

# backups
vfcli-ctrl backups:force-flush
vfcli-ctrl backup-storage:reset-key

# tasks and services
vfcli-ctrl task:cancel
vfcli-ctrl app:restart --services=queue

The hypervisor — vfcli-hv#

BASH
vfcli-hv dr:backup
vfcli-hv dr:backup --only-servers=1754,1253
vfcli-hv dr:backup --exclude-system-data

WARNING: hypervisor:force-remove takes that node and its servers away from the control server by force. Use it only when the node is truly dead. If you do not, VM records stay behind with no node attached to them.


Lesson 3 — Common problems and their corrections#

The network#

A VM has no internet, but the host has. UFW on the hypervisor blocks the routed packets:

BASH
ufw default allow routed

Unable to get index for interface eth0: No such device The MacVTap interface name is wrong. Run ip a on the node, then correct Hypervisor → Networks → Primary Network → Interface Name.

The hypervisor connection#

A 401 error, and the hypervisor cannot be reached. The IP of the control server changed. On the hypervisor, in /opt/virtfusion/app/hypervisor/conf/auth.json, change the "ip" field to the new IP. Do not change the token, hash, or id fields.

"Commission status done" during a re-commission. The node is locked to another control server. If the node is clean, delete /opt/virtfusion/app/hypervisor/conf/auth.json. If it is not clean, install the node again.

Migration and DR#

A hybrid migration is stuck. Go to Server → Migrations, open the log, copy the first command in the Commands part, and run it over SSH on the control server.

The error "priority.xml found". A DR process runs, or it failed. Run it again:

BASH
vfcli-hv dr:backup --only-servers=SERVER_ID

The panel and the services#

A 500 error after a MariaDB update. Download the current MariaDB configuration file and install it. Restart the service, then restart the VirtFusion services.

The console preview does not work. ImageMagick is missing:

BASH
apt install imagemagick        # Debian and Ubuntu
dnf install ImageMagick        # RHEL, Alma, and Rocky

Supervisor needs an update. Install the current configuration and reload it. First make sure that no server task is running.

Inside the VM#

Turn nested virtualization on. With the CPU model host-passthrough it is on by default. To turn it off, change the CPU flag.

The order to search in#

  1. Are the services running? Use systemctl status for vf-nginx, the queue

worker, and libvirtd.

  1. Do the control server and the hypervisor reach each other? Port 8892 must

be open in both directions.

  1. Is a task stuck? Run vfcli-ctrl task:cancel.
  2. Is it the network? Look at UFW, the interface name, and which node holds

the IP block.

  1. Then read the log, before you make a guess.

Lesson 4 — Updates, PHP, and moving the control server#

Updates#

VirtFusion changes quickly. Keep it current. Before an update:

  1. Let the running tasks finish, or cancel them.
  2. Take a backup of the database.
  3. Update the control server first, then the hypervisors.

The PHP upgrade#

The PHP version of the control server is upgraded separately. Follow the "PHP Upgrade" guide of VirtFusion. The hypervisor also has PHP compatibility points.

Change the domain#

When you change the domain of the panel, three things must change together:

  1. The control domain setting
  2. The SSL certificate, with ACME on the new domain
  3. The Trusted Hosts list

If you forget one, the panel does not open, or a security hole stays open.

Move the control server#

To move it to a new machine, the usual steps are:

  1. Take a full backup on the old server: the database and the encryption key.
  2. Install the same version on the new machine.
  3. Restore the backup.
  4. Re-issue the licence, because the licence locks to the control server.
  5. Write the new IP into the auth.json of each hypervisor.
  6. Correct the SSL certificate and the Trusted Hosts.

WARNING: A database backup is almost useless without the encryption key. Keep both together, but in a different place from the backup data.


Lesson 5 — VirtFusion against Proxmox VE#

A quick comparison#

SubjectVirtFusionProxmox VE
The main purposeSell VPS, to many tenantsRun your own infrastructure
CostA commercial licence, one for each clusterFree. The enterprise repository is optional
Customer panelYes, separate, with limited rightsNo. Everyone sees one UI, controlled by permissions
VirtualizationKVM only, full VMsKVM and LXC containers
ClusterControl server and nodes. No quorum neededCorosync quorum. Two nodes need a QDevice
HA failoverNo. If a node fails, recovery is manual or by DRYes, but it needs fencing
Live migrationYes, on local or Ceph. The CPUs must matchYes
Storagelocal, Ceph RBD, remote FS, StorPool, LightbitsLVM, LVM-thin, ZFS, Ceph, NFS, iSCSI
BackupIts own Backup Manager (S3, PBS, SSH, Rclone)vzdump and Proxmox Backup Server
SnapshotsElevate, with commit and discardFull snapshots and rollback
Billing connectionModules for 7 billing systemsNone
APIREST, /api/v1, a Bearer tokenREST, tickets and tokens, pvesh
Traffic accountingFor each VM, with a package limitNone. You must build it
OS templatescloud-init template managementYou make the templates yourself
rDNS managementYes, manual or automationNone

Who takes which#

SituationAdvice
You sell VPS and need a customer panelVirtFusion
You run the servers of your own companyProxmox VE
You need containers (LXC)Proxmox VE
You want automatic provisioning from WHMCS or BlestaVirtFusion
A VM must move to another node by itself when a node failsProxmox VE, with HA and fencing
You sell traffic accounting and bandwidth limitsVirtFusion
The budget is zeroProxmox VE

An honest assessment#

VirtFusion is good at everything the customer sees: the panel, the billing connection, IP and traffic management, templates, and SSO. To build these on Proxmox takes months.

Proxmox is good at the flexibility of the infrastructure: containers, ZFS, snapshots, HA failover, and it costs nothing.

In short: VirtFusion is a platform to sell a product. Proxmox is a virtualization platform. Which one is "better" depends on what you sell.


Lesson 6 — Run both, and the migration path#

Both together#

Many providers run both:

WorkWhere
Customer VPSOn the VirtFusion nodes
Your own internal services (monitoring, DNS, backup)On Proxmox, in LXC containers

Do not install both on one bare-metal machine. Both want to control libvirt, KVM, and the network, and they collide. Keep separate nodes.

Proxmox to VirtFusion#

There is no automatic import tool. You do each VM by hand:

  1. Stop the VM.
  2. Export the disk from Proxmox, with qm move_disk or with `qemu-img

convert` straight to qcow2 or raw.

  1. Install cloud-init and the QEMU guest agent inside it.
  2. Clean the network configuration. On Debian, keep only

source /etc/network/interfaces.d/* in /etc/network/interfaces.

  1. Make a server of the same size in VirtFusion, and install a similar OS.
  2. Put the prepared disk on the hypervisor, with the correct name:

[UUID]_[DISK_ID].img.

  1. Boot it, then look at the network and the data.

Advice on planning: do not move every VM together. Move one test VM of your own first, then a small customer, and the large ones last. Announce the downtime window for each one in advance. Use Mailouts.

What happens to the LXC containers#

VirtFusion runs no container. For the LXC services on Proxmox there are two paths:

  1. Run those services as full VMs in VirtFusion. They need more RAM.
  2. Keep one Proxmox node for the internal services only.

At the end of phase 7 you can#

  • Run the monthly security routine
  • Do emergency work with the CLI
  • Correct the common errors yourself
  • Update and move the control server safely
  • Choose correctly between VirtFusion and Proxmox

Back to the contents