Commit Graph

146 Commits

Author SHA1 Message Date
Hannes Mehnert 65693ea188 revise the "--net=yyy" argument to (optionally) contain a service:bridge
it used to only contain service, and used the same string for the bridge. This
is not flexible enough to run off-the-shelf unikernels (configured for bridge
"service" and "management" on multi-homed servers). The old behaviour is the
new default (i.e. "--net=service" creates and attaches a tap device to bridge
"service", and passes "--net:service=tapYY" to the solo5 tender). But it is more
flexible now: "--net=service:other-bridge" will create a tap device attached to
"other-bridge" and pass "--net:service=tapYY" to the tender. This way, there's
no need to match bridge names on the actual server with network device names of
the unikernels.

NB: this is (mostly) backwards-compatible: the on-disk data structures are
versioned (and the version is bumped with this PR), an old albatross client can
send "create" commands to a new server. But a new client will get a parse error
from an old server - which is fine taking into consideration the deployment
base.
2020-03-25 16:09:23 +01:00
Hannes Mehnert eccdaeafda set umask in mkfifo 2019-11-27 11:27:55 +01:00
Hannes Mehnert 34817a2090 notes about brctl, could potentially be replaced by ip 2019-11-27 11:27:55 +01:00
Hannes Mehnert 6206e8681a make dbdir and tmpdir platform-specific and overwritable by all command line utilities 2019-11-27 11:27:55 +01:00
Hannes Mehnert 784429744c versioning: revise it all, use a 'current' in Vmm_commands, all daemons reply with the received version on that particular stream 2019-11-11 23:20:03 +01:00
Hannes Mehnert 057dbbf147 revise naming freedom: multiple labels are allowed in certificate common names
influx may drop topmost label (if --drop-label provided)
2019-11-09 20:36:32 +01:00
Hannes Mehnert ec9f00b39a vmm_ring revise implementation 2019-10-29 20:42:51 +01:00
Hannes Mehnert 8a113e5ce0 revise log and console subscription protocol, require either since or count 2019-10-29 20:17:50 +01:00
Hannes Mehnert 82782363b8 Vmm_unix.check_commands : unit -> (unit, [> `Msg of string ]) result - which
checks (platform-dependent) all required executables
Vmm_unix.prepare/exec execute solo5-{spt/hvt} depending on the image type
 (solo5-elftool figures that out), use jsonm to parse output
Vmm_unix: use ip on linux, no longer ifconfig
2019-10-27 21:31:37 +01:00
Hannes Mehnert 01f6983325 cosmetics 2019-10-27 19:47:37 +01:00
Hannes Mehnert 1d33c17b53 use a variant for uname result, not strings 2019-10-27 19:43:54 +01:00
Hannes Mehnert 47fef438e0 preserve backwards data compatibility 2019-10-15 00:49:58 +02:00
Hannes Mehnert 5b187999f1 restart: range 60..64 no restart, document all the exits 2019-10-14 11:05:22 +02:00
Hannes Mehnert a579a8e143 root name is "." instead of "" 2019-10-13 13:40:17 +02:00
Hannes Mehnert 249796ce6f minor 2019-10-12 02:30:21 +02:00
Hannes Mehnert 866cd9041a move conn_metrics to Vmm_core 2019-10-12 02:15:44 +02:00
Hannes Mehnert 13edb22db3 bump wire version 2019-10-12 02:06:45 +02:00
Hannes Mehnert c9820f3106 deterministic mac addresses! 2019-10-12 02:06:45 +02:00
Hannes Mehnert 0808c20583 restart on failure: add optional integer set which exit codes to restart on 2019-10-12 02:06:45 +02:00
Hannes Mehnert 6be9ebbc8b revise tag and compression in unikernel config 2019-10-12 02:06:45 +02:00
Hannes Mehnert 520eab879e minor api cleanup 2019-10-12 02:06:45 +02:00
Hannes Mehnert 58c3490782 restart on failure 2019-10-12 02:06:45 +02:00
Hannes Mehnert f81a12bc4d initial metrics 2019-10-12 02:06:38 +02:00
Hannes Mehnert 94912c21e4 changes for solo5 0.6
-- this is a breaking change in the wire protocol
2019-10-12 02:06:27 +02:00
Hannes Mehnert 4787b0cf1f remove unnecessary freebsd-specific teardown code (bhyvectl --destroy), since 0.6 reverted privdrop 2019-10-12 02:04:44 +02:00
Hannes Mehnert 4ce52daea8 gather more statistics from kinfo_user (sys/user.h) on FreeBSD
- real time runtime information (in microsecs) ki_runtime
- start timeval ki_start
- count of copy-on-write fauls ki_cow
2019-10-12 02:04:44 +02:00
Mindy bf59b7b930 update to ipaddr 4.0.0 & decompress 0.9.0 2019-07-16 15:11:41 -05:00
Hannes Mehnert 45f37389aa move to dune, rename executables 2019-03-28 00:11:43 +01:00
Hannes Mehnert 4b4d1208db vmmd_stats: remove ifname, use bridge (overwrite bridge in gather) 2019-01-27 22:31:04 +01:00
Hannes Mehnert 55d7fd38ac vmm_ring: unused variable 2019-01-27 22:22:57 +01:00
Hannes Mehnert a9c32d7801 vmmd: actually, first check resources, then exec VM, then insert VM
in case the insertion fails, raise Invalid_argument

this leads to more sane failure behaviour, and also cleans up resources in case
 vmm_resources.insert_vm fails (or cpuset/open of the fifo, create_process)
2019-01-27 17:20:24 +01:00
Hannes Mehnert 16f06216ba vmmd: fine grained output handling, gracefully handle Failure from console 2019-01-27 16:07:53 +01:00
Hannes Mehnert 84e7dee81b vmmd_console: further refactoring 2019-01-27 13:10:09 +01:00
Hannes Mehnert eb146351e0 vmm_ring: fix create (array size was hardcoded to 1024, independent of optional size argument) 2019-01-27 13:02:10 +01:00
Hannes Mehnert 943ea45e25 vmm_vmmd, vmm_unix: compute device name (/dev/vmm/solo5-PID) in vmm_unix (depending on host OS); also destroy this device on shutdown (used to be done by solo5-hvt, but that now drops privileges and is no longer able to do this) 2019-01-20 23:02:01 +01:00
Hannes Mehnert c372c8405e vmmd: dump state (unikernel configurations) on create+destroy, restore from state on startup 2019-01-20 22:17:59 +01:00
Hannes Mehnert 1a288d2937 vmm_vmmd: pass success reply to handle_create fully applied 2019-01-20 22:09:33 +01:00
Hannes Mehnert 4d3bb777e1 vmm_vmmd: introduce and use type 'a create 2019-01-20 22:09:33 +01:00
Hannes Mehnert e58ab236b7 vmmd: lock self_destruct with a mutex, respect result of killall (nothing killed, nothing to do) 2019-01-20 22:09:33 +01:00
Hannes Mehnert d4e31da27f vmmd: setup and teardown stat by create continuation, and vmm_vmmd.handle_shutdown 2019-01-20 22:09:33 +01:00
Hannes Mehnert fdcea94a0b vmmd: store waiter, not tasks in Vmm_vmmd.t -- create task and waiter on demand (destroy / create --force), instead of at each unikernel creation 2019-01-20 22:09:33 +01:00
Hannes Mehnert fc63a89429 Vmm_unix: use Sys.sigterm (and rely on caml_convert_signal_number to be cross-platform) 2019-01-20 20:37:30 +01:00
Hannes Mehnert dfd22be62b Vmm_unix: don't reset image of a config 2019-01-20 20:35:55 +01:00
Hannes Mehnert accb21b8b7 Vmm_unix.exec: rename vm to config 2019-01-20 20:35:26 +01:00
Hannes Mehnert d30e118c76 Vmm_core.Name: use 'vm:' instead of 'name' as literal string to print 2019-01-20 20:31:40 +01:00
Hannes Mehnert 15e1f5ecf6 vmm_unix: ensure lazy uname being called only once 2019-01-20 20:28:51 +01:00
Hannes Mehnert 7b8f8fafbd close fd early, no need to carry file descriptors around 2019-01-20 17:43:44 +01:00
Hannes Mehnert 094922f6b0 vmmd: teardown gracefully (kill all vms), install SIGTERM handler to teardown 2019-01-18 01:14:11 +01:00
Hannes Mehnert 58bd77bc5f stats: pass bridge device through, vmm device name as well to allow arbitrary bhyve statistics, vmmc_local: add stats_add and stats_remove subcommands 2019-01-15 00:25:59 +01:00
Hannes Mehnert fd4a5a5e22 inspect kinfo_proc structure for information about:
- virtual size
- resident size (in pages)
- text size (in pages)
- data size (in pages)
- stack size (in pages)

develop independent vmmc_stat for testing (not installed)
2019-01-06 01:12:56 +01:00