Docs · Reference

clio_run and its environment.

One command manages the runtime and its pools. A second mounts the filesystem. Environment variables override the config file for a single run.

Binaries
clio_run (alias clio), clio_cte_fuse
Config
~/.clio/clio.yaml

clio_run

usage
clio_run <command> [options]
CommandWhat it does
startStart the runtime in the foreground, recover persistent state, and compose the pools in the config.
stopStop the runtime. --grace-period <ms> sets the drain budget (default 5000); --force stops immediately.
statusPrint RUNNING, STOPPED (clean) or STOPPED (stale artifacts). The exit code is 0, 1 or 2 to match.
composeManage pools from a YAML file: start, stop, list.
monitorPrint worker statistics.
migrateMove a container to a different node.
config export --path <file>Write the node's effective configuration to a file.
refreshRegenerate method files for module development.

start options

OptionEffect
--freshDiscard this node's persistent state instead of recovering it.
--disk <path>Storage root for persistent state on this run (default ~/.clio). Same as CLIO_STORAGE_ROOT.
--ephemeralSkip the configured compose and start with only the admin pool.
--inductRegister this node with an existing cluster.
--viz, --no-vizServe or skip the web dashboard (on by default).
--viz-port <port>Dashboard port (default 8080; 0 picks a free one).
--viz-bind <addr>Dashboard bind address (default 127.0.0.1).

compose

A compose file has the same compose: list as clio.yaml. This one adds a 256 MB RAM block device:

yaml · tiers.yaml
compose:
  - mod_name: clio_bdev
    pool_name: "ram::scratch"
    pool_query: local
    pool_id: "320.0"
    bdev_type: ram
    capacity: "256MB"
    restart: true
shell
$ clio_run compose start tiers.yaml   # create the pools in the file
$ clio_run compose list               # list containers in the local daemon
$ clio_run compose stop tiers.yaml    # destroy those pools

Pools marked restart: true are recorded in each node's pool log and composed again by the next clio_run start. stop destroys the pools now but keeps them in the log. clio_run compose list --restartable lists the log.

clio_cte_fuse

usage
clio_cte_fuse <mountpoint> [FUSE options]

The daemon creates or binds the filesystem pool itself. Every argument after the mountpoint goes to FUSE: -f (foreground), -d (debug trace), -s (single thread), -o allow_other (needs user_allow_other in /etc/fuse.conf). On Windows the mountpoint is a drive letter (Z:) or an empty directory path. On macOS, -o backend=fskit selects FSKit.

VariableDefaultEffect
CLIO_WITH_RUNTIME1Set to 0 to attach to a running runtime. Almost always what you want.
CLIO_FUSE_ATTR_CACHE_S1.0 (0 on several nodes)Kernel attribute cache lifetime, in seconds. 0 gives strict coherence across clients.
CLIO_FUSE_WRITEBACKoffKernel writeback caching. Unsafe with several writers.

Environment variables

VariableEffect
CLIO_SERVER_CONFPath of the runtime configuration file (overrides ~/.clio/clio.yaml).
CLIO_STORAGE_ROOTDirectory for persistent tiers, the metadata log and the index. Expanded as ${CLIO_STORAGE_ROOT} in the config.
CLIO_PORTBase RPC port (default 9413).
CLIO_SERVER_ADDRAddress clients use to reach the runtime.
CLIO_IPC_MODEClient transport: SHM (shared memory), IPC (Unix socket) or TCP. When unset, the client picks the fastest one that works: SHM for a runtime on the same machine, otherwise IPC, otherwise TCP.
CLIO_WITH_RUNTIME0 attaches a client to a running runtime; 1 starts one in-process.
CLIO_CTE_POOLBind the CTE client to a chain layer, such as 564.0 for search.
CLIO_VIZ_ENABLE, CLIO_VIZ_PORT, CLIO_VIZ_BINDDashboard settings.
CTP_LOG_LEVELLog verbosity, such as info or debug.

Configuration file

~/.clio/clio.yaml has a few top-level sections. networking sets ports and, for a cluster, the hostfile with one node address per line. runtime sets worker threads and queue depth. viz configures the dashboard. compose lists the pools to create. The installed clio_default.yaml documents every key in comments. The compose tutorial covers the storage settings.