github.com/NVIDIA/aistore@v1.3.23-0.20240517131212-7df6609be51d/docs/sysfiles.md (about) 1 --- 2 layout: post 3 title: SYSFILES 4 permalink: /docs/sysfiles 5 redirect_from: 6 - /sysfiles.md/ 7 - /docs/sysfiles.md/ 8 --- 9 10 ## System Files 11 12 AIStore stores, maintains, and utilizes a number of system files that serve a variety of different purposes. 13 14 > For the most recently updated system filenames and configuration directories, please see [`fname/fname.go`](https://github.com/NVIDIA/aistore/blob/main/cmn/fname/fname.go) source. 15 16 This section tries to enumerate the *system files* and briefly describe their respective usages. 17 18 First, there's a *node configuration* usually derived from a single configuration template and populated at deployment time. 19 20 * Local Playground: a single [configuration template](/deploy/dev/local/aisnode_config.sh) and [the script](/deploy/dev/local/deploy.sh) we use to populate it when we run the cluster locally on our development machines; 21 * [Production K8s deployment](https://github.com/NVIDIA/ais-k8s/tree/master): a set of [ansible playbooks](https://github.com/NVIDIA/ais-k8s/blob/master/playbooks/README.md) to automate creation of a node's configuration files via a [custom K8s operator](https://github.com/NVIDIA/ais-k8s/blob/master/operator/README.md) and to deploy multiple nodes across a K8s cluster. 22 23 The second category of *system files and directories* includes: 24 25 | Name | Type | Node | Brief Description | Description | 26 | ---- | ---- | ---- | ----------------- | ----------- | 27 | `.ais.bmd` | file | gateway | Buckets Metadata | Names and properties of all buckets, including replicated [remote buckets](providers.md#cloud-object-storage) and [remote AIStore](providers.md#remote-ais-cluster) buckets | 28 | `.ais.smap` | file | gateway and target | Cluster Map | Description of whole cluster which includes IDs and IPs of all the nodes. | 29 | `.ais.rmd` | file | storage target | Rebalancing State | Used internally to make sure that cluster-wide rebalancing runs to completion in presence of all possible events including cluster membership changes and cluster restarts. | 30 | `.ais.markers/` | dir | storage target | Persistent state markers | Used 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). | 31 | `.ais.proxy_id` | file | gateway | Gateway node id | Used during node startup to detect a node ID if not [specified with `-daemon_id`](/docs/command_line.md). Note: storage targets also try to detect a node ID, but by looking for the extended attribute `user.ais.daemon_id` on its filesystem. | 32 33 Thirdly, there are also AIS components and tools, such as [AIS authentication server](https://github.com/NVIDIA/aistore/tree/main/cmd/authn) and [AIS CLI](https://github.com/NVIDIA/aistore/tree/main/cmd/cli). Authentication server, if enabled, creates a sub-directory `.authn` that contains: 34 35 | Name | Description | 36 | --- | --- | 37 | `authn.json` | AuthN server configuration | 38 | `authn.db` | Registered clusters, a token blacklist, user roles, user credentials and permissions | 39 40 And on the machine where you run AIS CLI expect to see the following two files (by default, under `~/.config/ais/cli/`): 41 42 | Name | Description | 43 | --- | --- | 44 | `cli.json` | Configuration file (if doesn't exist, the config gets created and populated with default values upon the first CLI run) | 45 | `auth.token` | The *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. | 46 47 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](https://github.com/NVIDIA/aistore/tree/main/ext/dsort) and [Downloader](https://github.com/NVIDIA/aistore/tree/main/ext/dload) and the example of the stored information would be running downloading jobs and their errors (if any).