Speed at scale

NIC pools

Network cards built ahead of time, so every VM starts already online.

What it is

Network cards built ahead of time, so every VM starts already online.

On Linux hosts, flashnetd builds network devices, addresses and NAT before any VM asks. Each new VM takes a ready card and boots straight onto the network. When the VM goes, its card is cleaned and reused.

Why it matters

Network setup is work on the host: a device, an address, firewall rules. A NIC pool does it in advance, so a burst of VMs never waits on networking.

  • Online from the first instruction. The card is ready before the VM is.
  • Reused instantly. Cards are cleaned and returned to the pool.
  • Pairs with warm pools. Ready machines on ready networks.

Runs on

  • Linux x86_64
  • Linux arm64

How it works

Build a pool, then start VMs with --nic pool=ID.

CLI

sudo flashnet pool create --mode nat --count 5 --id net-pool-1
flashnet pool show net-pool-1
flash run --bundle BUNDLE --id vm-1 --vcpus 1 --mem-mib 256 --nic pool=net-pool-1 --detach

MCP

flash_cli(args: ["run", "--bundle", "BUNDLE", "--id", "vm-1", "--vcpus", "1", "--mem-mib", "256", "--nic", "pool=net-pool-1", "--detach"])
flash_wake(vm_id: "vm-1", nic: "pool=net-pool-1")

API

POST /v1/nic-pools {"mode": "nat", "count": 5, "id": "net-pool-1"}
POST /v1/nic-pools/{pool_id}/claims

The result

Five VMs online at once, each on a card built before it asked.

All five reached the internet in parallel, with no network setup on any VM's path.

How it works

Related

See it live: flash demo run 14