System files

View as Markdown

System Files

AIStore stores, maintains, and utilizes a number of system files that serve a variety of different purposes.

For the most recently updated system filenames and configuration directories, please see fname/fname.go source.

This section tries to enumerate the system files and briefly describe their respective usages.

First, there’s a node configuration usually derived from a single configuration template and populated at deployment time.

The second category of system files and directories includes:

NameTypeNodeBrief DescriptionDescription
.ais.bmdfilegatewayBuckets MetadataNames and properties of all buckets, including replicated remote buckets and remote AIStore buckets
.ais.smapfilegateway and targetCluster MapDescription of whole cluster which includes IDs and IPs of all the nodes.
.ais.rmdfilestorage targetRebalancing StateUsed internally to make sure that cluster-wide rebalancing runs to completion in presence of all possible events including cluster membership changes and cluster restarts.
.ais.markers/dirstorage targetPersistent state markersUsed for many purposes like determining node restart or rebalance/resilver abort. The role of the markers is to survive potential node’s process crash (eg. due to power outage or mistake).
.ais.proxy_idfilegatewayGateway node idUsed during node startup to detect a node ID if not specified with -daemon_id. Note: storage targets also try to detect a node ID, but by looking for the extended attribute user.ais.daemon_id on its filesystem.

Thirdly, there are also AIS components and tools, such as AIS authentication server and AIS CLI. Authentication server, if enabled, creates a sub-directory .authn that contains:

NameDescription
authn.jsonAuthN server configuration
authn.dbRegistered clusters, a token blacklist, user roles, user credentials and permissions

And on the machine where you run AIS CLI expect to see the following two files (by default, under ~/.config/ais/cli/):

NameDescription
cli.jsonConfiguration file (if doesn’t exist, the config gets created and populated with default values upon the first CLI run)
auth.tokenThe token file is created iff AuthN (see above) is running and CLI user logged-in (via ais auth login command). The auth.token is then used to make the requests to the cluster and manage users and their permissions. When a logged-in user signs out, the token file gets removed.

Finally, there’s also ais.db that each AIS node may store locally to maintain component-specific runtime information in the form of key-value records. The components in-question include dSort and Downloader and the example of the stored information would be running downloading jobs and their errors (if any).