Starting a KVM VPS hosting business: the checklist from hardware to billing
What you need to sell KVM virtual servers: hypervisor hardware, IP space, storage, a control panel, billing, backups and the day-to-day work after launch.
4 min read
Selling VPS hosting comes down to a handful of decisions: which machines the servers run on, where their addresses come from, how disks are stored, what customers and your billing system talk to, and how you get things back when a node dies. Here they are in the order you'll meet them, with what VorticPanel expects of each.
Hypervisors
Your nodes are the dedicated servers your customers' VPSes run on. KVM needs Intel VT-x or AMD-V switched on in the BIOS: on the server, grep -Ec 'vmx|svm' /proc/cpuinfo should print a number above zero. A cloud VM with nested virtualization is fine for trying things out, but sell from bare metal.
Plan packages around memory: it's usually the first thing to run out, because unlike CPU it can't be shared out beyond what the node has without trouble. For disks, NVMe is the difference customers notice most, and RAID or a mirrored ZFS pool keeps one failed drive from becoming an outage.
Start with two nodes rather than one, so you can empty one for maintenance by moving its servers to the other. If you want those moves to be live, keep Intel and AMD nodes in separate node groups: a running server can't move live between the two, only with a restart. Live-migrating KVM servers between nodes explains why.
IP addresses
Every VPS needs at least one public IPv4 address, and IPv4 is now one of the biggest costs in a cheap VPS plan. Get a block routed to your servers from your provider, a /28 to start and a /24 as you grow. A routed block is easier to move between nodes than one that's on-link on a shared VLAN.
Give every server IPv6 as well: VorticPanel hands each server a block from an IPv6 pool, of the size you choose, from a whole /64 to a single address. Customers running mail will ask for reverse DNS on day one; with PowerDNS connected, the panel lets them set it themselves. In VorticPanel, an IP pool lists the nodes its subnet is routed to, and a server keeps its addresses when it moves between those nodes. See IP pools.
Storage
How you store server disks decides how fast snapshots, backups and moves are. VorticPanel works with:
| Layout | Good for |
|---|---|
| LVM thin | Fast snapshots and thin provisioning. The node installer sets one up on a spare disk. |
| ZFS | Checksums, compression and snapshots, if you already run ZFS. |
| A folder of qcow2 files | The simplest to set up, on any mounted drive. |
Whatever you choose, sell disk you actually have. Thin provisioning lets you promise more than the drive holds, and a full pool stops every server on it. See Storage.
The control panel and billing
Every power action, reinstall, firewall change or reverse DNS record customers can't do themselves becomes a ticket for you, so the panel has to give them those. It also has to give your billing system an API to create, suspend, unsuspend and terminate servers, with idempotency keys so a request retried after a timeout doesn't create two servers.
Most hosting providers keep orders, invoices and payments in a billing panel such as WHMCS or Blesta, and let it drive the VPS panel:
| When | The billing panel calls |
|---|---|
| An order is paid | Create the server |
| An invoice is overdue | Suspend it |
| It's paid | Unsuspend it |
| The service is canceled | Terminate it |
VorticPanel has modules for WHMCS and Blesta that make these calls; for anything else, Connecting a billing panel lists them. Its agents connect out to the panel, so nodes don't need a management port open. If you plan to let others sell your capacity under their own brand, it has resellers.
It costs $7 a node a month with unlimited VMs, $4 for up to 5 VMs and $1 for a single VM, with a 15-day free trial on up to three nodes. See pricing.
Backups
You need two kinds. Customers' backups are copies of their servers stored off the node, on S3-compatible storage or an SFTP server, so a dead node doesn't take the backups with it; many hosts sell them as an add-on. Your own backups are of the control panel: its database and the key that decrypts everything in it. Losing those is worse than losing a node. Encrypted, off-node backups for a KVM VPS fleet covers both.
After launch
Once customers arrive, the work is abuse, monitoring and maintenance. Compromised servers send spam, scan ports and join DDoS attacks, so you need to be able to suspend a server quickly; each server in VorticPanel also has a firewall that runs on its node. Staff hear when a node stops answering, and you can send the same events to your own monitoring through webhooks or Prometheus. Kernel updates need reboots, which is where moving a node's servers off it first comes in.
Related
- Requirements for the controller and each node
- Installing the controller, one command
- Adding a node, one more