Deploying the storage cluster

Create the storage cluster on one (the first) node, then populate it with more nodes.

Limitations

  • You can assign a role to a disk only if its size is greater than 1 GiB.
  • You can assign an additional role to a system disk only if its size is at least 100 GiB.
  • You can use shingled magnetic recording (SMR) HDDs only with the Storage role and only if the node has an SSD disk with the Cache role.
  • You cannot use SMR and standard disks in the same tier.
  • You cannot assign roles to system and non-system disks at a time.

Prerequisites

  • A clear understanding of the storage cluster architecture and disk roles, which are explained in About the storage cluster.
  • A clear understanding of the concept Storage tiers.
  • Your infrastructure networks are set up, as described in Setting up networks.
  • The node network interfaces are configured by following the instructions in Configuring node network interfaces.
  • If supported, RDMA is enabled, as described in Enabling RDMA.
  • External DNS servers are added automatically during the installation or manually, as described in Adding external DNS servers.
  • All of the nodes are shown in the admin panel on the Infrastructure > Nodes screen with the Unassigned status.

To create the storage cluster on the first node

Admin panel

  1. Open the Infrastructure > Nodes screen, and then click Create storage cluster.
  2. To configure the disk roles or node location, click the cogwheel icon.

  3. Enter a name for the cluster. It may only contain Latin letters (a-z, A-Z), numbers (0-9), and hyphens (“-“).
  4. Enable encryption, if required.
  5. Click Create.

You can monitor cluster creation on the Infrastructure > Nodes screen. The creation might take some time, depending on the number of disks to be configured. Once the configuration is complete, the cluster is created.

Command-line interface

Use the following command:

vinfra cluster create [--disk <disk>:<role>[:<key=value,…>]] [--tier-encryption {0,1,2,3}]
                      --node <node> <cluster-name>
--disk <disk>:<role> [:<key=value,…>]

Disk configuration in the format:

  • <disk>: disk device ID or name
  • <role>: disk role (cs, mds, journal, mds-journal, mds-system, cs-system, system)
  • comma-separated key=value pairs with keys (optional):
    • tier: disk tier (0, 1, 2 or 3)
    • journal-tier: journal (cache) disk tier (0, 1, 2 or 3)
    • journal-type: journal (cache) disk type (no_cache, inner_cache or external_cache)
    • journal-disk: journal (cache) disk ID or device name

    • bind-address: bind IP address for the metadata service

Example: sda:cs:tier=0,journal-type=inner_cache.
This option can be used multiple times.

--tier-encryption {0,1,2,3}
Enable encryption for storage cluster tiers. Encryption is disabled by default. This option can be used multiple times.
--node <node>
Node ID or hostname
<cluster-name>
Storage cluster name

For example, to create the storage cluster stor1 on the node node001, run:

# vinfra cluster create stor1 --node node001

As disk roles are not explicitly specified, they are assigned automatically: mds-system to the system disk, and cs to all other disks.

You can view the storage cluster details in the vinfra cluster show output:

# vinfra cluster show
+-------+--------------------------------------------+
| Field | Value                                      |
+-------+--------------------------------------------+
| id    | 1                                          |
| name  | stor1                                      |
| nodes | - host: node001.vstoragedomain             |
|       |   id: f59dabdb-bd1c-4944-8af2-26b8fe9ff8d4 |
|       |   is_installing: false                     |
|       |   is_releasing: false                      |
+-------+--------------------------------------------+

To add nodes to the cluster

Admin panel

  1. On the Infrastructure > Nodes screen, click an unassigned node.
  2. On the node right pane, click Join to cluster.
  3. Click Join to assign the roles to disks automatically and add the node to the default location. Alternatively, click the cogwheel icon to configure the disk roles or node location.

Command-line interface

Use the following command:

vinfra node join [--disk <disk>:<role>[:<key=value,…>]] <node>
--disk <disk>:<role> [:<key=value,…>]

Disk configuration in the format:

  • <disk>: disk device ID or name
  • <role>: disk role (cs, mds, journal, mds-journal, mds-system, cs-system, system)
  • comma-separated key=value pairs with keys (optional):
    • tier: disk tier (0, 1, 2 or 3)
    • journal-tier: journal (cache) disk tier (0, 1, 2 or 3)
    • journal-type: journal (cache) disk type (no_cache, inner_cache or external_cache)
    • journal-disk: journal (cache) disk ID or device name

    • bind-address: bind IP address for the metadata service

Example: sda:cs:tier=0,journal-type=inner_cache.
This option can be used multiple times.

<node>
Node ID or hostname

For example, to add the node node002 to the storage cluster and assign roles to disks: mds-system to sda, cs to sdb and sdc, run:

# vinfra node join f59dabdb-bd1c-4944-8af2-26b8fe9ff8d4 --disk sda:mds-system \
--disk sdb:cs --disk sdc:cs

The added node will appear in the vinfra node list output:

# vinfra node list
+--------------+--------------+------------+-----------+-------------+----------+
| id           | host         | is_primary | is_online | is_assigned | is_in_ha |
+--------------+--------------+------------+-----------+-------------+----------+
| 09bb6b8<...> | node001<...> | True       | True      | True        | False    |
| 187edb1<...> | node002<...> | False      | True      | True        | False    |
+--------------+--------------+------------+-----------+-------------+----------+