Skip to content

Latest commit

 

History

History
105 lines (89 loc) · 5.76 KB

README.md

File metadata and controls

105 lines (89 loc) · 5.76 KB
domain shortname name status editor contributors
github.com
4/KV
Consul KV Schema
draft
Valery V. Vorotyntsev <[email protected]>
Andriy Tkachuk <[email protected]>
Mandar Sawant <[email protected]>
Rajanikant Chirmade <[email protected]>

Consul KV Schema

Key Value Description
bq/<epoch> (conf object fid, HA state) bq/* items are collectively referred to as the BQ (Broadcast Queue). The items - HA state updates - are produced by the RC (Recovery Coordinator) script.
epoch current epoch Atomically incremented counter, which is used to generate unique ordered identifiers for EQ and BQ entries. Natural number.
eq/<epoch> event eq/* items are collectively referred to as the EQ (Event Queue). Events are consumed and dequeued by the RC script.
last_fidk last generated fid key Atomically incremented counter that is used to generate fids.
leader node name This key is used for RC leader election. Created with consul lock command.
m0conf/nodes/<name>/processes/<process_fidk>/endpoint endpoint address Endpoint address of the Motr process (Consul service) with fid key <process_fidk>. Example: 192.168.180.162@tcp:12345:44:101.
m0conf/nodes/<name>/processes/<process_fidk>/meta_data path to meta-data disk m0mkfs uses this value to create meta-data pool.
m0conf/nodes/<name>/processes/<process_fidk>/services/<svc_type> Fid key Fid key of the Motr service, specified by its type, parent process, and node.
m0conf/nodes/<node_fid> { "name": "<node name>", "state": "<HA state>" }
m0conf/nodes/<node_fid>/processes/<process_fid> { "name": "<process name>", "state": "<HA state>" }
m0conf/nodes/<node_fid>/processes/<process_fid>/services/<svc_fid> { "name": "<service name>", "state": "<HA state>" }
m0conf/nodes/<node_fid>/processes/<process_fid>/services/<svc_fid>/sdevs/<sdev_fid> { "path": "<sdev path>", "state": "<HA state>" }
m0conf/pools/<pool_fid> pool name Name of the pool as specified in the CDF. Example: tier1-nvme.
m0conf/profiles/<profile_fid> { "name": "<profile_name>", "pools": [ "<pool_name>" ] } "pools" - names of the SNS pools associated with this profile. <profile_name> and <pool_name>s are specified in the CDF.
m0conf/sites/<site_fid> { "state": "<HA state>" } HA state of this site.
m0conf/sites/<site_fid>/racks/<rack_fid> { "state": "<HA state>" } HA state of this rack.
m0conf/sites/<site_fid>/racks/<rack_fid>/encls/<encl_fid> { "node": "<node_fid>", "state": "<HA state>" } Fid of the corresponding node and HA state of this enclosure.
m0conf/sites/<site_fid>/racks/<rack_fid>/encls/<encl_fid>/ctrls/<ctrl_fid> { "state": "<HA state>" } HA state of this controller.
m0conf/sites/<site_fid>/racks/<rack_fid>/encls/<encl_fid>/ctrls/<ctrl_fid>/drives/<drive_fid> { "dev": "<sdev_fid>", "state": "<HA state>" } Fid of the corresponding storage device and HA state of this drive.
processes/<fid> { "state": "<HA state>", "type": "<Motr process type>" } The items are created and updated by hax processes. Supported values of <HA state>: M0_CONF_HA_PROCESS_STARTING, M0_CONF_HA_PROCESS_STARTED, M0_CONF_HA_PROCESS_STOPPING, M0_CONF_HA_PROCESS_STOPPED. Supported values of Motr process types: M0_CONF_HA_PROCESS_OTHER, M0_CONF_HA_PROCESS_KERNEL, M0_CONF_HA_PROCESS_M0MKFS, M0_CONF_HA_PROCESS_M0D.
sspl.SYSTEM_INFORMATION.log_level This key is used by SSPL.
stats/filesystem JSON object See 'stats/filesystem' value below.
timeout YYYYmmddHHMM.SS This value is used by the RC timeout mechanism.

Note: Fid keys are non-negative integers, base 10.

HA state

See enum m0_ha_obj_state in Motr code, ha/note.h.

'stats/filesystem' value

Example:

{
  "stats": {
    "fs_free_seg": 71468251167696,
    "fs_total_seg": 10995118312064,
    "fs_free_disk": 429084411691008,
    "fs_avail_disk": 429084411691008,
    "fs_total_disk": 429084412739584,
    "fs_svc_total": 4,
    "fs_svc_replied": 4
  },
  "timestamp": 1588596031.468349,
  "date": "2020-05-04T12:40:31.468349"
}
Field Description
fs_free_seg free bytes in BE segments
fs_total_seg total bytes in BE segments
fs_free_disk free bytes on drives
fs_avail_disk available bytes on drives
fs_total_disk total bytes on drives
fs_svc_total total number of IOS, MDS, and CAS services
fs_svc_replied how many of them have replied

Corresponding Motr structure: struct m0_fs_stats