Names, Sizes and Defaults
The rules every command shares: what a name may contain, how a size is read, and what Cubic picks when you leave a setting out.
Names
Name |
Allowed |
Notes |
|---|---|---|
VM instance |
letters, numbers, underscore and dash |
Used as the directory name of the VM instance. |
Snapshot |
letters, numbers, underscore and dash |
Always written as |
Guest user |
lowercase letters, numbers, underscore and dash |
Must start with a lowercase letter or an underscore, which is the usual
Linux rule. |
Image |
see Image Names |
Written as |
Sizes
A size is a whole number followed by one uppercase letter. The letters are
binary, so 1G is one gibibyte and not one gigabyte.
Suffix |
Unit |
Bytes |
|---|---|---|
|
byte |
1 |
|
kibibyte |
1024 |
|
mebibyte |
1048576 |
|
gibibyte |
1073741824 |
|
tebibyte |
1099511627776 |
Lowercase letters and decimals are rejected, so use 512M rather than
0.5G or 512m. Cubic prints sizes back with a single letter B, K,
M, G or T and no decimal, dropping to the next smaller unit when the
value would fall below ten, so 1G of memory prints as 1024 M. Sizes are
stored as plain bytes in the Instance File.
Defaults of a New VM Instance
Setting |
Default |
|---|---|
Image |
None. |
User |
Your user name on the host, taken from |
Architecture |
Architecture of the host. |
Disk |
100 GiB. A disk can only grow later. |
vCPUs and memory |
Derived from the host, see below. |
Isolation |
Off. |
Ports |
Only SSH, on a free host port bound to |
vCPUs and Memory
A fixed default would be wasteful on a small host and harmful on a laptop, since QEMU reserves the full memory at startup. Cubic therefore picks a size from the host.
The sizes form levels. Level N gives 2N vCPUs and N GiB of memory, so every level keeps half a GiB per vCPU. A level needs the host to have at least 4 * (N + 1) threads and the same number of GiB of memory. Cubic takes the largest level both totals allow. A host too small for level 1 gets 1 vCPU and 512 MiB.
Host threads |
Host memory |
Default of a new VM instance |
|---|---|---|
4 |
4 GiB |
1 vCPU, 512 MiB |
8 |
8 GiB |
2 vCPUs, 1 GiB |
16 |
16 GiB |
6 vCPUs, 3 GiB |
32 |
64 GiB |
14 vCPUs, 7 GiB |
The smaller of the two totals decides, so a host with many threads and little
memory gets the memory level. A VM instance therefore always stays below half of
the host threads and below a quarter of the host memory. Set --cpus and
--memory to override it, either at create time or later with
cubic modify.
Cubic keeps 1 GiB of memory aside for the host when it checks whether a VM instance can start, and warns when the host has less than 5 GiB of free disk space.