summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSixOnMyface <[email protected]>2026-06-08 22:48:51 +0300
committerGitHub <[email protected]>2026-06-08 22:48:51 +0300
commitcec2db564fddf36ee4f6daa49cbaa706ce4218cb (patch)
tree4e1e31d70843a16ddbdaf3f2d12073e21f8d2443
parent020f098467a738a22175b6be7110dd70f20a0dc8 (diff)
YDBDOCS2145-DELETE MONOLITH DOUBLER (#41357)
Co-authored-by: Stepan Beloyarov <[email protected]>
-rw-r--r--ydb/docs/en/core/devops/deployment-options/ansible/initial-deployment.md2
-rw-r--r--ydb/docs/en/core/devops/deployment-options/manual/initial-deployment.md641
-rw-r--r--ydb/docs/redirects.yaml7
-rw-r--r--ydb/docs/ru/core/devops/configuration-management/_includes/node-authorization.md2
-rw-r--r--ydb/docs/ru/core/devops/configuration-management/configuration-v1/cluster-expansion.md6
-rw-r--r--ydb/docs/ru/core/devops/configuration-management/configuration-v1/dynamic-config.md2
-rw-r--r--ydb/docs/ru/core/devops/configuration-management/configuration-v2/cluster-expansion.md8
-rw-r--r--ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/connector-deployment.md4
-rw-r--r--ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/index.md2
-rw-r--r--ydb/docs/ru/core/devops/deployment-options/manual/initial-deployment.md754
-rw-r--r--ydb/docs/ru/core/devops/deployment-options/manual/node-authorization.md2
-rw-r--r--ydb/docs/ru/core/devops/observability/monitoring.md2
-rw-r--r--ydb/docs/ru/core/maintenance/manual/dynamic-config.md2
-rw-r--r--ydb/docs/ru/core/reference/configuration/table_service_config.md2
14 files changed, 23 insertions, 1413 deletions
diff --git a/ydb/docs/en/core/devops/deployment-options/ansible/initial-deployment.md b/ydb/docs/en/core/devops/deployment-options/ansible/initial-deployment.md
index ad7419fa75e..9191b9f54e1 100644
--- a/ydb/docs/en/core/devops/deployment-options/ansible/initial-deployment.md
+++ b/ydb/docs/en/core/devops/deployment-options/ansible/initial-deployment.md
@@ -431,7 +431,7 @@ After all the preparations explained above are complete, the actual initial clus
ansible-playbook ydb_platform.ydb.initial_setup
```
-Shortly after start, you'll be asked to confirm full wipe of the configured disk drives. Then, it can take tens of minutes to finish deployment depending on the environment and settings. Under the hood, this playbook follows roughly the same steps as explained in instructions for [manual {{ ydb-short-name }} cluster deployment](../manual/initial-deployment.md).
+Shortly after start, you'll be asked to confirm full wipe of the configured disk drives. Then, it can take tens of minutes to finish deployment depending on the environment and settings. Under the hood, this playbook follows roughly the same steps as explained in instructions for [manual {{ ydb-short-name }} cluster deployment](../manual/initial-deployment/index.md).
### Checking the Cluster State {#cluster-state}
diff --git a/ydb/docs/en/core/devops/deployment-options/manual/initial-deployment.md b/ydb/docs/en/core/devops/deployment-options/manual/initial-deployment.md
deleted file mode 100644
index 2136585a15f..00000000000
--- a/ydb/docs/en/core/devops/deployment-options/manual/initial-deployment.md
+++ /dev/null
@@ -1,641 +0,0 @@
-# Deploying {{ ydb-short-name }} Cluster Manually
-
-<!-- markdownlint-disable blanks-around-fences -->
-{% note warning %}
-
-This guide is only for deploying clusters with [V1 configuration](../../configuration-management/configuration-v1/index.md). Deploying clusters with [V2 configuration](../../configuration-management/configuration-v2/index.md) is currently under development.
-
-{% endnote %}
-
-This document describes how to deploy a multi-tenant {{ ydb-short-name }} cluster on multiple bare-metal or virtual servers.
-
-## Getting Started {#before-start}
-
-### Prerequisites {#requirements}
-
-Review the [system requirements](../../../devops/concepts/system-requirements.md) and the [cluster topology](../../../concepts/topology.md).
-
-Make sure you have SSH access to all servers. This is required to install artifacts and run the {{ ydb-short-name }} executable.
-
-The network configuration must allow TCP connections on the following ports (these are defaults, but you can change them by settings):
-
-* 22: SSH service
-* 2135, 2136: GRPC for client-cluster interaction.
-* 19001, 19002: Interconnect for intra-cluster node interaction
-* 8765, 8766: HTTP interface of {{ ydb-short-name }} Embedded UI.
-
-Distinct ports are necessary for gRPC, Interconnect and HTTP interface of each dynamic node when hosting multiple dynamic nodes on a single server.
-
-Make sure that the system clocks running on all the cluster's servers are synced by `ntpd` or `chrony`. We recommend using the same time source for all servers in the cluster to maintain consistent leap seconds processing.
-
-If the Linux flavor run on the cluster servers uses `syslogd` for logging, set up log file rotation using`logrotate` or similar tools. {{ ydb-short-name }} services can generate substantial amounts of system logs, particularly when you elevate the logging level for diagnostic purposes. That's why it's important to enable system log file rotation to prevent the `/var` file system overflow.
-
-Select the servers and disks to be used for storing data:
-
-* Use the `block-4-2` fault tolerance model for cluster deployment in one availability zone (AZ). Use at least eight servers to safely survive the loss of two servers.
-* Use the `mirror-3-dc` fault tolerance model for cluster deployment in three availability zones (AZ). To survive the loss of one AZ and one server in another AZ, use at least nine servers. Make sure that the number of servers running in each AZ is the same.
-
-{% note info %}
-
-Run each static node (data node) on a separate server. Both static and dynamic nodes can run together on the same server. A server can also run multiple dynamic nodes if it has enough computing power.
-
-{% endnote %}
-
-For more information about hardware requirements, see [{#T}](../../../devops/concepts/system-requirements.md).
-
-### Preparing TLS Keys and Certificates {#tls-certificates}
-
-The TLS protocol provides traffic protection and authentication for {{ ydb-short-name }} server nodes. Before you install your cluster, determine which servers it will host, establish the node naming convention, come up with node names, and prepare your TLS keys and certificates.
-
-You can use existing certificates or generate new ones. Prepare the following files with TLS keys and certificates in the PEM format:
-
-* `ca.crt`: CA-issued certificate used to sign the other TLS certificates (these files are the same on all the cluster nodes).
-* `node.key`: Secret TLS keys for each cluster node (one key per cluster server).
-* `node.crt`: TLS certificates for each cluster node (each certificate corresponds to a key).
-* `web.pem`: Concatenation of the node secret key, node certificate, and the CA certificate needed for the monitoring HTTP interface (a separate file is used for each server in the cluster).
-
-Your organization should define the parameters required for certificate generation in its policy. The following parameters are commonly used for generating certificates and keys for {{ ydb-short-name }}:
-
-* 2048-bit or 4096-bit RSA keys
-* Certificate signing algorithm: SHA-256 with RSA encryption
-* Validity period of node certificates: at least 1 year
-* CA certificate validity period: at least 3 years.
-
-Make sure that the CA certificate is appropriately labeled, with the CA property enabled along with the "Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign" usage types.
-
-For node certificates, it's key that the actual host name (or names) match the values in the "Subject Alternative Name" field. Enable both the regular usage types ("Digital Signature, Key Encipherment") and advanced usage types ("TLS Web Server Authentication, TLS Web Client Authentication") for the certificates. Node certificates must support both server authentication and client authentication (the `extendedKeyUsage = serverAuth,clientAuth` option in the OpenSSL settings).
-
-For batch generation or update of {{ ydb-short-name }} cluster certificates by OpenSSL, you can use the [sample script](https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/tls_cert_gen/) from the {{ ydb-short-name }} GitHub repository. Using the script, you can streamline preparation for installation, automatically generating all the key files and certificate files for all your cluster nodes in a single step.
-
-## Create a System User and a Group to Run {{ ydb-short-name }} {#create-user}
-
-On each server that will be running {{ ydb-short-name }}, execute the command below:
-
-```bash
-sudo groupadd ydb
-sudo useradd ydb -g ydb
-```
-
-To ensure that {{ ydb-short-name }} can access block disks, add the user that will run {{ ydb-short-name }} processes, to the `disk` group:
-
-```bash
-sudo usermod -aG disk ydb
-```
-
-## Configure File Descriptor Limits {#file-descriptors}
-
-For proper operation of {{ ydb-short-name }}, especially when using [spilling](../../../concepts/query_execution/spilling.md) in multi-node clusters, it is recommended to increase the limit of simultaneously open file descriptors.
-
-To change the file descriptor limit, add the following lines to the `/etc/security/limits.conf` file:
-
-```bash
-ydb soft nofile 10000
-ydb hard nofile 10000
-```
-
-Where `ydb` is the username under which `ydbd` runs.
-
-After changing the file, you need to reboot the system or log in again to apply the new limits.
-
-{% note info %}
-
-For more information about spilling configuration and its relationship with file descriptors, see the [Spilling Configuration](../../../reference/configuration/table_service_config.md#file-system-requirements) section.
-
-{% endnote %}
-
-## Install {{ ydb-short-name }} Software on Each Server {#install-binaries}
-
-1. Download and unpack an archive with the `ydbd` executable and the libraries required for {{ ydb-short-name }} to run:
-
- ```bash
- mkdir ydbd-stable-linux-amd64
- curl -L {{ ydb-binaries-url }}/{{ ydb-stable-binary-archive }} | tar -xz --strip-component=1 -C ydbd-stable-linux-amd64
- ```
-
-1. Create directories for {{ ydb-short-name }} software:
-
- ```bash
- sudo mkdir -p /opt/ydb /opt/ydb/cfg
- ```
-
-1. Copy the executable and libraries to the appropriate directories:
-
- ```bash
- sudo cp -iR ydbd-stable-linux-amd64/bin /opt/ydb/
- sudo cp -iR ydbd-stable-linux-amd64/lib /opt/ydb/
- ```
-
-1. Set the owner of files and folders:
-
- ```bash
- sudo chown -R root:bin /opt/ydb
- ```
-
-## Prepare and Clear Disks on Each Server {#prepare-disks}
-
-{% include [_includes/storage-device-requirements.md](../../../_includes/storage-device-requirements.md) %}
-
-To get a list of available block devices on the server, you can use the `lsblk` command. Example output:
-
-```txt
-NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
-loop0 7:0 0 63.3M 1 loop /snap/core20/1822
-...
-vda 252:0 0 40G 0 disk
-├─vda1 252:1 0 1M 0 part
-└─vda2 252:2 0 40G 0 part /
-vdb 252:16 0 186G 0 disk
-└─vdb1 252:17 0 186G 0 part
-```
-
-The names of block devices depend on the operating system settings provided by the base image or manually configured. Typically, device names consist of up to three parts:
-
-- A fixed prefix or a prefix indicating the device type
-- A device sequential identifier (which can be a letter or a number)
-- A partition sequential identifier on the given device (usually a number)
-
-1. Create partitions on the selected disks:
-
- {% note alert %}
-
- The next operation will delete all partitions on the specified disk. Make sure that you specified a disk that contains no external data.
-
- {% endnote %}
-
- ```bash
- DISK=/dev/nvme0n1
- sudo parted ${DISK} mklabel gpt -s
- sudo parted -a optimal ${DISK} mkpart primary 0% 100%
- sudo parted ${DISK} name 1 ydb_disk_ssd_01
- sudo partx --u ${DISK}
- ```
-
- Execute the command `ls -l /dev/disk/by-partlabel/` to ensure that a disk with the label `/dev/disk/by-partlabel/ydb_disk_ssd_01` has appeared in the system.
-
- If you plan to use more than one disk on each server, replace `ydb_disk_ssd_01` with a unique label for each one. Disk labels should be unique within each server. They are used in configuration files, see the following guides.
-
- To streamline the next setup step, it makes sense to use the same disk labels on cluster servers having the same disk configuration.
-
-2. Clear the disk by this command built-in the `ydbd` executable:
-
-{% note warning %}
-
-After executing this command, data on the disk will be erased.
-
-{% endnote %}
-
- ```bash
- sudo LD_LIBRARY_PATH=/opt/ydb/lib /opt/ydb/bin/ydbd admin bs disk obliterate /dev/disk/by-partlabel/ydb_disk_ssd_01
- ```
-
- Perform this operation for each disk to be used for {{ ydb-short-name }} data storage.
-
-## Prepare Configuration Files {#config}
-
-Prepare a configuration file for {{ ydb-short-name }}:
-
-1. Download a sample config for the appropriate failure model of your cluster:
-
- * [block-4-2](https://github.com/ydb-platform/ydb/blob/stable-23-3/ydb/deploy/yaml_config_examples/block-4-2.yaml): For a single-data center cluster.
- * [mirror-3dc](https://github.com/ydb-platform/ydb/blob/stable-23-3/ydb/deploy/yaml_config_examples/mirror-3dc-9-nodes.yaml): For a cross-data center cluster consisting of 9 nodes.
- * [mirror-3dc-3nodes](https://github.com/ydb-platform/ydb/blob/stable-23-3/ydb/deploy/yaml_config_examples/mirror-3dc-3-nodes.yaml): For a cross-data center cluster consisting of 3 nodes.
-
-1. In the `host_configs` section, specify all disks and their types on each cluster node. Possible disk types:
-
- * ROT: Rotational, HDD.
- * SSD: SSD or NVMe.
-
- ```json
- host_configs:
- - drive:
- - path: /dev/disk/by-partlabel/ydb_disk_ssd_01
- type: SSD
- host_config_id: 1
- ```
-
-2. In the `hosts` section, specify the FQDN of each node, their configuration and location in a `data_center` or `rack`:
-
- ```json
- hosts:
- - host: node1.ydb.tech
- host_config_id: 1
- walle_location:
- body: 1
- data_center: 'zone-a'
- rack: '1'
- - host: node2.ydb.tech
- host_config_id: 1
- walle_location:
- body: 2
- data_center: 'zone-b'
- rack: '1'
- - host: node3.ydb.tech
- host_config_id: 1
- walle_location:
- body: 3
- data_center: 'zone-c'
- rack: '1'
- ```
-
-3. Under `blob_storage_config`, edit the FQDNs of all the nodes accommodating your static storage group:
-
- * For the `mirror-3-dc` scheme, specify FQDNs for nine nodes.
- * For the `block-4-2` scheme, specify FQDNs for eight nodes.
-
-4. Enable user authentication (optional).
-
- If you plan to use authentication and user access differentiation features in the {{ ydb-short-name }} cluster, add the following parameters to the `domains_config` section:
-
- ```json
- domains_config:
- security_config:
- enforce_user_token_requirement: true
- monitoring_allowed_sids:
- - "root"
- - "ADMINS"
- - "DATABASE-ADMINS"
- administration_allowed_sids:
- - "root"
- - "ADMINS"
- - "DATABASE-ADMINS"
- viewer_allowed_sids:
- - "root"
- - "ADMINS"
- - "DATABASE-ADMINS"
- ```
-
-In the traffic encryption mode, make sure that the {{ ydb-short-name }} configuration file specifies paths to key files and certificate files under `interconnect_config` and `grpc_config`:
-
-```yaml
-interconnect_config:
- start_tcp: true
- encryption_mode: OPTIONAL
- path_to_certificate_file: "/opt/ydb/certs/node.crt"
- path_to_private_key_file: "/opt/ydb/certs/node.key"
- path_to_ca_file: "/opt/ydb/certs/ca.crt"
-grpc_config:
- cert: "/opt/ydb/certs/node.crt"
- key: "/opt/ydb/certs/node.key"
- ca: "/opt/ydb/certs/ca.crt"
- services_enabled:
- - legacy
-```
-
-Save the {{ ydb-short-name }} configuration file as `/opt/ydb/cfg/config.yaml` on each cluster node.
-
-For more detailed information about creating the configuration file, see [{#T}](../../../reference/configuration/index.md).
-
-## Copy the TLS Keys and Certificates to Each Server {#tls-copy-cert}
-
-Make sure to copy the generated TLS keys and certificates to a protected folder on each {{ ydb-short-name }} cluster node. Below are sample commands that create a protected folder and copy files with keys and certificates.
-
-```bash
-sudo mkdir -p /opt/ydb/certs
-sudo cp -v ca.crt /opt/ydb/certs/
-sudo cp -v node.crt /opt/ydb/certs/
-sudo cp -v node.key /opt/ydb/certs/
-sudo cp -v web.pem /opt/ydb/certs/
-sudo chown -R ydb:ydb /opt/ydb/certs
-sudo chmod 700 /opt/ydb/certs
-```
-
-## Start Static Nodes {#start-storage}
-
-{% list tabs group=manual-systemd %}
-
-- Manually
-
- Run a {{ ydb-short-name }} data storage service on each static cluster node:
-
- ```bash
- sudo su - ydb
- cd /opt/ydb
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd server --log-level 3 --syslog --tcp --yaml-config /opt/ydb/cfg/config.yaml \
- --grpcs-port 2135 --ic-port 19001 --mon-port 8765 --mon-cert /opt/ydb/certs/web.pem --node static
- ```
-
-- Using systemd
-
- On each server that will host a static cluster node, create a systemd `/etc/systemd/system/ydbd-storage.service` configuration file by the template below. You can also [download](https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/systemd_services/ydbd-storage.service) the sample file from the repository.
-
- ```text
- [Unit]
- Description=YDB storage node
- After=network-online.target rc-local.service
- Wants=network-online.target
- StartLimitInterval=10
- StartLimitBurst=15
-
- [Service]
- Restart=always
- RestartSec=1
- User=ydb
- PermissionsStartOnly=true
- StandardOutput=syslog
- StandardError=syslog
- SyslogIdentifier=ydbd
- SyslogFacility=daemon
- SyslogLevel=err
- Environment=LD_LIBRARY_PATH=/opt/ydb/lib
- ExecStart=/opt/ydb/bin/ydbd server --log-level 3 --syslog --tcp \
- --yaml-config /opt/ydb/cfg/config.yaml \
- --grpcs-port 2135 --ic-port 19001 --mon-port 8765 \
- --mon-cert /opt/ydb/certs/web.pem --node static
- LimitNOFILE=65536
- LimitCORE=0
- LimitMEMLOCK=3221225472
-
- [Install]
- WantedBy=multi-user.target
- ```
-
- Run the service on each static {{ ydb-short-name }} node:
-
- ```bash
- sudo systemctl start ydbd-storage
- ```
-
-{% endlist %}
-
-## Initialize a Cluster {#initialize-cluster}
-
-The cluster initialization operation sets up static nodes listed in the cluster configuration file, for storing {{ ydb-short-name }} data.
-
-To initialize the cluster, you'll need the `ca.crt` file issued by the Certificate Authority. Use its path in the initialization commands. Before running the commands, copy `ca.crt` to the server where you will run the commands.
-
-Cluster initialization actions depend on whether the user authentication mode is enabled in the {{ ydb-short-name }} configuration file.
-
-{% list tabs group=authentication %}
-
-- Authentication enabled
-
- To execute administrative commands (including cluster initialization, database creation, disk management, and others) in a cluster with user authentication mode enabled, you must first get an authentication token using the {{ ydb-short-name }} CLI client version 2.0.0 or higher. You must install the {{ ydb-short-name }} CLI client on any computer with network access to the cluster nodes (for example, on one of the cluster nodes) by following the [installation instructions](../../../reference/ydb-cli/install.md).
-
- When the cluster is first installed, it has a single `root` account with a blank password, so the command to get the token is the following:
-
- ```bash
- ydb -e grpcs://<node1.ydb.tech>:2135 -d /Root --ca-file ca.crt \
- --user root --no-password auth get-token --force >token-file
- ```
-
- You can specify any storage server in the cluster as an endpoint (the `-e` or `--endpoint` parameter).
-
- If the command above is executed successfully, the authentication token will be written to `token-file`. Copy the token file to one of the storage servers in the cluster, then run the following commands on the server:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd -f token-file --ca-file ca.crt -s grpcs://`hostname -f`:2135 \
- admin blobstorage config init --yaml-file /opt/ydb/cfg/config.yaml
- echo $?
- ```
-
-- Authentication disabled
-
- On one of the storage servers in the cluster, run these commands:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd --ca-file ca.crt -s grpcs://`hostname -f`:2135 \
- admin blobstorage config init --yaml-file /opt/ydb/cfg/config.yaml
- echo $?
- ```
-
-{% endlist %}
-
-You will see that the cluster was initialized successfully when the cluster initialization command returns a zero code.
-
-## Create a Database {#create-db}
-
-To work with [row-oriented](../../../concepts/datamodel/table.md#row-oriented-tables) and [column-oriented](../../../concepts/datamodel/table.md#column-oriented-tables) tables, you need to create at least one database and run a process (or processes) to serve this database (dynamic nodes):
-
-To execute the administrative command for database creation, you will need the `ca.crt` certificate file issued by the Certificate Authority (see the above description of cluster initialization).
-
-When creating your database, you set an initial number of storage groups that determine the available input/output throughput and maximum storage. For an existing database, you can increase the number of storage groups when needed.
-
-The database creation procedure depends on whether you enabled user authentication in the {{ ydb-short-name }} configuration file.
-
-{% list tabs group=authentication %}
-
-- Authentication enabled
-
- Get an authentication token. Use the authentication token file that you obtained when [initializing the cluster](#initialize-cluster) or generate a new token.
-
- Copy the token file to one of the storage servers in the cluster, then run the following commands on the server:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd -f token-file --ca-file ca.crt -s grpcs://`hostname -f`:2135 \
- admin database /Root/testdb create ssd:1
- echo $?
- ```
-
-- Authentication disabled
-
- On one of the storage servers in the cluster, run these commands:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd --ca-file ca.crt -s grpcs://$(hostname -f):2135 \
- admin database /Root/testdb create ssd:1
- echo $?
- ```
-
-{% endlist %}
-
-You will see that the database was created successfully when the command returns a zero code.
-
-The command example above uses the following parameters:
-
-* `/Root`: Name of the root domain, automatically generated upon cluster initialization.
-* `testdb`: Name of the created database.
-* `ssd:1`: Defines the storage pool for the database and the number of groups in it. The pool name (`ssd`) must correspond to the disk type specified in the cluster configuration (for example, in `default_disk_type`) and is case-insensitive. The number after the colon is the number of storage groups to be allocated.
-
-## Run Dynamic Nodes {#start-dynnode}
-
-{% list tabs group=manual-systemd %}
-
-- Manually
-
- Run the {{ ydb-short-name }} dynamic node for the `/Root/testdb` database:
-
- ```bash
- sudo su - ydb
- cd /opt/ydb
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd server --grpcs-port 2136 --grpc-ca /opt/ydb/certs/ca.crt \
- --ic-port 19002 --ca /opt/ydb/certs/ca.crt \
- --mon-port 8766 --mon-cert /opt/ydb/certs/web.pem \
- --yaml-config /opt/ydb/cfg/config.yaml --tenant /Root/testdb \
- --node-broker grpcs://<ydb1>:2135 \
- --node-broker grpcs://<ydb2>:2135 \
- --node-broker grpcs://<ydb3>:2135
- ```
-
- In the command example above, `<ydbN>` is replaced by FQDNs of any three servers running the cluster's static nodes.
-
-- Using systemd
-
- Create a systemd configuration file named `/etc/systemd/system/ydbd-testdb.service` by the following template: You can also [download](https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/systemd_services/ydbd-testdb.service) the sample file from the repository.
-
- ```text
- [Unit]
- Description=YDB testdb dynamic node
- After=network-online.target rc-local.service
- Wants=network-online.target
- StartLimitInterval=10
- StartLimitBurst=15
-
- [Service]
- Restart=always
- RestartSec=1
- User=ydb
- PermissionsStartOnly=true
- StandardOutput=syslog
- StandardError=syslog
- SyslogIdentifier=ydbd
- SyslogFacility=daemon
- SyslogLevel=err
- Environment=LD_LIBRARY_PATH=/opt/ydb/lib
- ExecStart=/opt/ydb/bin/ydbd server \
- --grpcs-port 2136 --grpc-ca /opt/ydb/certs/ca.crt \
- --ic-port 19002 --ca /opt/ydb/certs/ca.crt \
- --mon-port 8766 --mon-cert /opt/ydb/certs/web.pem \
- --yaml-config /opt/ydb/cfg/config.yaml --tenant /Root/testdb \
- --node-broker grpcs://<ydb1>:2135 \
- --node-broker grpcs://<ydb2>:2135 \
- --node-broker grpcs://<ydb3>:2135
- LimitNOFILE=65536
- LimitCORE=0
- LimitMEMLOCK=32212254720
-
- [Install]
- WantedBy=multi-user.target
- ```
-
- In the file example above, `<ydbN>` is replaced by FQDNs of any three servers running the cluster's static nodes.
-
- Run the {{ ydb-short-name }} dynamic node for the `/Root/testdb` database:
-
- ```bash
- sudo systemctl start ydbd-testdb
- ```
-
-{% endlist %}
-
-Run additional dynamic nodes on other servers to ensure database scalability and fault tolerance.
-
-## Initial Account Setup {#security-setup}
-
-If authentication mode is enabled in the cluster configuration file, initial account setup must be done before working with the {{ ydb-short-name }} cluster.
-
-The initial installation of the {{ ydb-short-name }} cluster automatically creates a `root` account with a blank password, as well as a standard set of user groups described in the [{#T}](../../../yql/reference/syntax/alter-group.md#builtin) section.
-
-To perform initial account setup in the created {{ ydb-short-name }} cluster, run the following operations:
-
-1. Install the {{ ydb-short-name }} CLI as described in the [documentation](../../../reference/ydb-cli/install.md).
-
-1. Set the password for the `root` account:
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root --no-password \
- yql -s 'ALTER USER root PASSWORD "passw0rd"'
- ```
-
- Replace the value `passw0rd` with the required password. Save the password in a separate file. Subsequent commands as the root user will be executed using the password passed with the `--password-file <path_to_user_password>` option. Additionally, the password can be saved in the connection profile, as described in the [documentation for {{ ydb-short-name }} CLI](../../../reference/ydb-cli/profile/index.md).
-
-1. Create additional accounts:
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root --password-file <path_to_root_pass_file> \
- yql -s 'CREATE USER user1 PASSWORD "passw0rd"'
- ```
-
-1. Set the account rights by including them in the integrated groups:
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root --password-file <path_to_root_pass_file> \
- yql -s 'ALTER GROUP `ADMINS` ADD USER user1'
- ```
-
-In the command examples listed above, `<node.ydb.tech>` is the FQDN of the server where any dynamic node servicing the `/Root/testdb` database is running. When connecting via SSH to a {{ ydb-short-name }} node, it's convenient to use the `grpcs://$(hostname -f):2136` command to use the current server's FQDN.
-
-
-## Start Using the Created Database {#try-first-db}
-
-1. Install the {{ ydb-short-name }} CLI as described in the [documentation](../../../reference/ydb-cli/install.md).
-
-1. Create a test row (`test_row_table`) or column (`test_column_table`) oriented table:
-
-{% list tabs %}
-
-- Creating a row-oriented table
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root \
- yql -s 'CREATE TABLE `testdir/test_row_table` (id Uint64, title Utf8, PRIMARY KEY (id));'
- ```
-
-- Creating a column-oriented table
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root \
- yql -s 'CREATE TABLE `testdir/test_column_table` (id Uint64 NOT NULL, title Utf8, PRIMARY KEY (id)) WITH (STORE = COLUMN);'
- ```
-
-{% endlist %}
-
-Here, `<node.ydb.tech>` is the FQDN of the server running the dynamic node that serves the `/Root/testdb` database.
-
-
-## Checking Access to the Built-in Web Interface
-
-To check access to the {{ ydb-short-name }} built-in web interface, open in the browser the `https://<node.ydb.tech>:8765` URL, where `<node.ydb.tech>` is the FQDN of the server running any static {{ ydb-short-name }} node.
-
-In the web browser, set as trusted the certificate authority that issued certificates for the {{ ydb-short-name }} cluster. Otherwise, you will see a warning about an untrusted certificate.
-
-If authentication is enabled in the cluster, the web browser should prompt you for a login and password. Enter your credentials, and you'll see the built-in interface welcome page. The user interface and its features are described in [{#T}](../../../reference/embedded-ui/index.md).
-
-{% note info %}
-
-A common way to provide access to the {{ ydb-short-name }} built-in web interface is to set up a fault-tolerant HTTP balancer running `haproxy`, `nginx`, or similar software. A detailed description of the HTTP balancer is beyond the scope of the standard {{ ydb-short-name }} installation guide.
-
-{% endnote %}
-
-## Installing {{ ydb-short-name }} in the Unprotected Mode
-
-{% note warning %}
-
-We do not recommend using the unprotected {{ ydb-short-name }} mode for development or production environments.
-
-{% endnote %}
-
-The above installation procedure assumes that {{ ydb-short-name }} was deployed in the standard protected mode.
-
-The unprotected {{ ydb-short-name }} mode is primarily intended for test scenarios associated with {{ ydb-short-name }} software development and testing. In the unprotected mode:
-
-* Traffic between cluster nodes and between applications and the cluster runs over an unencrypted connection.
-* Users are not authenticated (it doesn't make sense to enable authentication when the traffic is unencrypted because the login and password in such a configuration would be transparently transmitted across the network).
-
-When installing {{ ydb-short-name }} to run in the unprotected mode, follow the above procedure, with the following exceptions:
-
-1. When preparing for the installation, you do not need to generate TLS certificates and keys and copy the certificates and keys to the cluster nodes.
-1. In the configuration files, remove the `security_config`, `interconnect_config`, and `grpc_config` sections entirely.
-1. Use simplified commands to run static and dynamic cluster nodes: omit the options that specify file names for certificates and keys; use the `grpc` protocol instead of `grpcs` when specifying the connection points.
-1. Skip the step of obtaining an authentication token before cluster initialization and database creation because it's not needed in the unprotected mode.
-1. Cluster initialization command has the following format:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd admin blobstorage config init --yaml-file /opt/ydb/cfg/config.yaml
- echo $?
- ```
-
-1. Database creation command has the following format:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd admin database /Root/testdb create ssd:1
- ```
-
-1. When accessing your database from the {{ ydb-short-name }} CLI and applications, use grpc instead of grpcs and skip authentication.
diff --git a/ydb/docs/redirects.yaml b/ydb/docs/redirects.yaml
index b9f36e2f1fc..9e92efcf16a 100644
--- a/ydb/docs/redirects.yaml
+++ b/ydb/docs/redirects.yaml
@@ -531,7 +531,12 @@ en:
- from: /cluster/system-requirements.md
to: /devops/system-requirements.md
- from: /devops/observability/initial-deployment.md
- to: /devops/deployment-options/manual/initial-deployment.md
+ to: /devops/deployment-options/manual/initial-deployment/index.md
+
+ - from: /devops/deployment-options/manual/initial-deployment.md
+ to: /devops/deployment-options/manual/initial-deployment/index.md
+ - from: /devops/manual/initial-deployment.md
+ to: /devops/deployment-options/manual/initial-deployment/index.md
- from: /maintenance/manual/index.md
to: /devops/deployment-options/manual/index.md
diff --git a/ydb/docs/ru/core/devops/configuration-management/_includes/node-authorization.md b/ydb/docs/ru/core/devops/configuration-management/_includes/node-authorization.md
index f8d1e0d90b4..a3bde1bc9e5 100644
--- a/ydb/docs/ru/core/devops/configuration-management/_includes/node-authorization.md
+++ b/ydb/docs/ru/core/devops/configuration-management/_includes/node-authorization.md
@@ -25,7 +25,7 @@
{% endnote %}
-3. В параметры командной строки для [запуска узлов баз данных](../../deployment-options/manual/initial-deployment/index.md#start-dynnode) необходимо добавить опции, задающие пути к файлам сертификатов доверенных центров сертификации, сертификата узла и ключа узла. Список дополнительных опций приведён в таблице ниже.
+3. В параметры командной строки для [запуска узлов баз данных](../../deployment-options/manual/initial-deployment/deployment-configuration-v1.md#start-dynnode) необходимо добавить опции, задающие пути к файлам сертификатов доверенных центров сертификации, сертификата узла и ключа узла. Список дополнительных опций приведён в таблице ниже.
| **Опция командной строки** | **Описание** |
|----------------------------|--------------|
diff --git a/ydb/docs/ru/core/devops/configuration-management/configuration-v1/cluster-expansion.md b/ydb/docs/ru/core/devops/configuration-management/configuration-v1/cluster-expansion.md
index b44de7f8751..86c6ea5dd6b 100644
--- a/ydb/docs/ru/core/devops/configuration-management/configuration-v1/cluster-expansion.md
+++ b/ydb/docs/ru/core/devops/configuration-management/configuration-v1/cluster-expansion.md
@@ -14,13 +14,13 @@
1. подготовить и разместить на сервере соответствующий ему ключ и сертификат TLS;
1. скопировать на сервер актуальный конфигурационный файл кластера {{ ydb-short-name }}.
-Используемые на новых серверах сертификаты TLS должны соответствовать [требованиям к заполнению полей](../../deployment-options/manual/initial-deployment/index.md#tls-certificates), и быть подписаны доверенным центром регистрации, используемым на уже существующих серверах расширяемого кластера {{ ydb-short-name }}.
+Используемые на новых серверах сертификаты TLS должны соответствовать [требованиям к заполнению полей](../../deployment-options/manual/initial-deployment/deployment-preparation.md#tls-certificates), и быть подписаны доверенным центром регистрации, используемым на уже существующих серверах расширяемого кластера {{ ydb-short-name }}.
## Добавление динамических узлов {#add-dynamic-node}
Добавление динамических узлов позволяет увеличить доступные вычислительные ресурсы (процессорные ядра и оперативную память) для выполнения пользовательских запросов кластером {{ ydb-short-name }}.
-Для добавления динамического узла в кластер достаточно запустить процесс, обслуживающий этот узел, передав ему в параметрах командной строки путь к конфигурационному файлу кластера, имя обслуживаемой базы данных и адреса любых трех статических узлов кластера кластера {{ ydb-short-name }}, как показано в [инструкции по развертыванию кластеров](../../deployment-options/manual/initial-deployment/index.md#start-dynnode).
+Для добавления динамического узла в кластер достаточно запустить процесс, обслуживающий этот узел, передав ему в параметрах командной строки путь к конфигурационному файлу кластера, имя обслуживаемой базы данных и адреса любых трех статических узлов кластера кластера {{ ydb-short-name }}, как показано в [инструкции по развертыванию кластеров](../../deployment-options/manual/initial-deployment/deployment-configuration-v1.md#start-dynnode).
После успешного добавления динамического узла в кластер информация о нем будет доступна на [странице мониторинга кластера во встроенном UI](../../../reference/embedded-ui/ydb-monitoring.md).
@@ -32,7 +32,7 @@
Для добавления статических узлов в кластер необходимо выполнить следующую последовательность действий:
-1. Отформатировать диски, которые будут использоваться для хранения данных {{ ydb-short-name }}, с использованием [процедуры, описанной для этапа развертывания кластера](../../deployment-options/manual/initial-deployment/index.md#prepare-disks).
+1. Отформатировать диски, которые будут использоваться для хранения данных {{ ydb-short-name }}, с использованием [процедуры, описанной для этапа развертывания кластера](../../deployment-options/manual/initial-deployment/deployment-preparation.md#prepare-disks).
1. Скорректировать конфигурационный файл кластера, лежащий на нодах:
* включить в конфигурацию описание добавляемых узлов (в секции `hosts`) и используемых на них дисков (в секции `host_configs`);
diff --git a/ydb/docs/ru/core/devops/configuration-management/configuration-v1/dynamic-config.md b/ydb/docs/ru/core/devops/configuration-management/configuration-v1/dynamic-config.md
index d1ada2c6312..1ad521fffb5 100644
--- a/ydb/docs/ru/core/devops/configuration-management/configuration-v1/dynamic-config.md
+++ b/ydb/docs/ru/core/devops/configuration-management/configuration-v1/dynamic-config.md
@@ -26,7 +26,7 @@
admin console configs dump-yaml > dynconfig.yaml
```
- Предварительно необходимо получить токен аутентификации с помощью команды `ydb auth get-token`, аналогично [процедуре инициализации кластера](../../../devops/deployment-options/manual/initial-deployment/index.md#initialize-cluster).
+ Предварительно необходимо получить токен аутентификации с помощью команды `ydb auth get-token`, аналогично [процедуре инициализации кластера](../../../devops/deployment-options/manual/initial-deployment/deployment-configuration-v1.md#initialize-cluster).
3. Сформируйте первоначальный файл динамической конфигурации:
diff --git a/ydb/docs/ru/core/devops/configuration-management/configuration-v2/cluster-expansion.md b/ydb/docs/ru/core/devops/configuration-management/configuration-v2/cluster-expansion.md
index e0f05a6ff85..7ede5760357 100644
--- a/ydb/docs/ru/core/devops/configuration-management/configuration-v2/cluster-expansion.md
+++ b/ydb/docs/ru/core/devops/configuration-management/configuration-v2/cluster-expansion.md
@@ -13,13 +13,13 @@
3. подготовить и разместить на сервере соответствующий ему ключ и сертификат TLS;
4. скопировать на сервер актуальный конфигурационный файл кластера {{ ydb-short-name }}.
-Используемые на новых серверах сертификаты TLS должны соответствовать [требованиям к заполнению полей](../../deployment-options/manual/initial-deployment/index.md#tls-certificates) и быть подписаны доверенным центром регистрации, используемым на уже существующих серверах расширяемого кластера {{ ydb-short-name }}.
+Используемые на новых серверах сертификаты TLS должны соответствовать [требованиям к заполнению полей](../../deployment-options/manual/initial-deployment/deployment-preparation.md#tls-certificates) и быть подписаны доверенным центром регистрации, используемым на уже существующих серверах расширяемого кластера {{ ydb-short-name }}.
## Добавление динамических узлов {#add-dynamic-node}
Добавление динамических узлов позволяет увеличить доступные вычислительные ресурсы (процессорные ядра и оперативную память) для выполнения пользовательских запросов кластером {{ ydb-short-name }}.
-Для добавления динамического узла в кластер достаточно запустить процесс, обслуживающий этот узел, передав ему в параметрах командной строки путь к конфигурационной директории кластера, имя обслуживаемой базы данных и адреса любых трёх статических узлов кластера {{ ydb-short-name }}, как показано в [инструкции по развёртыванию кластеров](../../deployment-options/manual/initial-deployment/index.md#start-dynnode).
+Для добавления динамического узла в кластер достаточно запустить процесс, обслуживающий этот узел, передав ему в параметрах командной строки путь к конфигурационной директории кластера, имя обслуживаемой базы данных и адреса любых трёх статических узлов кластера {{ ydb-short-name }}, как показано в [инструкции по развёртыванию кластеров](../../deployment-options/manual/initial-deployment/deployment-configuration-v2.md#start-dynnode).
После успешного добавления динамического узла в кластер информация о нём будет доступна на [странице мониторинга кластера во встроенном UI](../../../reference/embedded-ui/ydb-monitoring.md).
@@ -31,7 +31,7 @@
Для добавления статических узлов в кластер необходимо выполнить следующую последовательность действий:
-1. Очистить диски, которые будут использоваться для хранения данных {{ ydb-short-name }}, с использованием [процедуры, описанной для этапа развёртывания кластера](../../deployment-options/manual/initial-deployment/index.md#prepare-disks).
+1. Очистить диски, которые будут использоваться для хранения данных {{ ydb-short-name }}, с использованием [процедуры, описанной для этапа развёртывания кластера](../../deployment-options/manual/initial-deployment/deployment-preparation.md#prepare-disks).
1. Получить токен аутентификации для выполнения административных команд с помощью {{ ydb-short-name }} CLI, например:
@@ -56,7 +56,7 @@
admin storage fetch > config.yaml
```
-1. Скорректировать [конфигурационный файл кластера](../../deployment-options/manual/initial-deployment/index.md), включив в конфигурацию описание добавляемых узлов (в секции `hosts`) и используемых на них дисков (в секции `host_configs`);
+1. Скорректировать [конфигурационный файл кластера](../../deployment-options/manual/initial-deployment/deployment-configuration-v2.md#config), включив в конфигурацию описание добавляемых узлов (в секции `hosts`) и используемых на них дисков (в секции `host_configs`);
2. Разрешить кластеру {{ ydb-short-name }} использовать диски на новых статических узлах для хранения данных, выполнив следующую команду на любом из узлов кластера:
diff --git a/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/connector-deployment.md b/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/connector-deployment.md
index 10faef5760d..ac668313781 100644
--- a/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/connector-deployment.md
+++ b/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/connector-deployment.md
@@ -46,7 +46,7 @@
sudo cp fq-connector-go.yaml /opt/ydb/cfg
```
-2. В {% if oss %}[рекомендуемом режиме использования](index.md#general-scheme){% else %}рекомендуемом режиме использования{% endif %} коннектор развёртывается на тех же серверах, что и динамические узлы {{ ydb-short-name }}, следовательно, шифрование сетевых соединений между ними *не требуется*. Однако если вам всё же необходимо включить шифрование, [подготовьте пару TLS-ключей](../initial-deployment/index.md#tls-certificates) и пропишите пути до публичного и приватного ключа в поля `connector_server.tls.cert` и `connector_server.tls.key` конфигурационного файла `fq-connector-go.yaml`:
+2. В {% if oss %}[рекомендуемом режиме использования](index.md#general-scheme){% else %}рекомендуемом режиме использования{% endif %} коннектор развёртывается на тех же серверах, что и динамические узлы {{ ydb-short-name }}, следовательно, шифрование сетевых соединений между ними *не требуется*. Однако если вам всё же необходимо включить шифрование, [подготовьте пару TLS-ключей](../initial-deployment/deployment-preparation.md#tls-certificates) и пропишите пути до публичного и приватного ключа в поля `connector_server.tls.cert` и `connector_server.tls.key` конфигурационного файла `fq-connector-go.yaml`:
```yaml
connector_server:
@@ -132,7 +132,7 @@
ghcr.io/ydb-platform/fq-connector-go:latest
```
-2. В {% if oss %}[рекомендуемом режиме использования](./index.md#general-scheme){% else %}рекомендуемом режиме использования{% endif %} коннектор развёртывается на тех же серверах, что и динамические узлы {{ ydb-short-name }}, следовательно, шифрование сетевых соединений между ними *не требуется*. Но если вам всё же необходимо включить шифрование между {{ ydb-short-name }} и коннектором, [подготовьте пару TLS-ключей](../initial-deployment/index.md#tls-certificates) и пропишите пути до публичного и приватного ключа в секции конфигурационного файла `connector_server.tls.cert` и `connector_server.tls.key` соответственно:
+2. В {% if oss %}[рекомендуемом режиме использования](./index.md#general-scheme){% else %}рекомендуемом режиме использования{% endif %} коннектор развёртывается на тех же серверах, что и динамические узлы {{ ydb-short-name }}, следовательно, шифрование сетевых соединений между ними *не требуется*. Но если вам всё же необходимо включить шифрование между {{ ydb-short-name }} и коннектором, [подготовьте пару TLS-ключей](../initial-deployment/deployment-preparation.md#tls-certificates) и пропишите пути до публичного и приватного ключа в секции конфигурационного файла `connector_server.tls.cert` и `connector_server.tls.key` соответственно:
```yaml
connector_server:
diff --git a/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/index.md b/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/index.md
index 798d539feb3..93a84643c7a 100644
--- a/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/index.md
+++ b/ydb/docs/ru/core/devops/deployment-options/manual/federated-queries/index.md
@@ -33,7 +33,7 @@
## Пошаговое руководство
-1. Выполните шаги инструкции по развёртыванию динамического узла {{ ydb-short-name }} до [подготовки конфигурационных файлов](../initial-deployment/index.md#config) включительно.
+1. Выполните шаги инструкции по развёртыванию динамического узла {{ ydb-short-name }} до [подготовки конфигурационных файлов](../initial-deployment/deployment-configuration-v1.md#config) включительно.
2. Если для доступа к нужному вам источнику требуется развернуть коннектор, сделайте это [согласно инструкции](./connector-deployment.md).
3. [В конфигурационном файле](../../../../reference/configuration/index.md) {{ ydb-short-name }} в секции `feature_flags` включите флаг `enable_external_data_sources`:
diff --git a/ydb/docs/ru/core/devops/deployment-options/manual/initial-deployment.md b/ydb/docs/ru/core/devops/deployment-options/manual/initial-deployment.md
deleted file mode 100644
index 5c162673dcb..00000000000
--- a/ydb/docs/ru/core/devops/deployment-options/manual/initial-deployment.md
+++ /dev/null
@@ -1,754 +0,0 @@
-# Развёртывание {{ ydb-short-name }} кластера вручную
-
-<!-- markdownlint-disable blanks-around-fences -->
-
-{% note warning %}
-
-Данная инструкция предназначена только для развёртывания кластеров с [конфигурацией V1](../../configuration-management/configuration-v1/index.md). Развёртывание кластеров с [конфигурацией V2](../../configuration-management/configuration-v2/index.md) в настоящий момент находится в разработке.
-
-{% endnote %}
-
-Этот документ описывает способ развернуть мультитенантный кластер {{ ydb-short-name }} на нескольких физических или виртуальных серверах.
-
-## Перед началом работы {#before-start}
-
-### Требования {#requirements}
-
-Ознакомьтесь с [системными требованиями](../../../devops/concepts/system-requirements.md) и [топологией кластера](../../../concepts/topology.md).
-
-У вас должен быть SSH доступ на все сервера. Это необходимо для установки артефактов и запуска исполняемого файла {{ ydb-short-name }}.
-
-Сетевая конфигурация должна разрешать TCP соединения по следующим портам (по умолчанию, могут быть изменены настройками):
-
-* 22: сервис SSH;
-* 2135, 2136: GRPC для клиент-кластерного взаимодействия;
-* 19001, 19002: Interconnect для внутрикластерного взаимодействия узлов;
-* 8765, 8766: HTTP интерфейс {{ ydb-short-name }} Embedded UI.
-* 9092, 9093: порты для работы по Kafka API.
-
-При размещении нескольких динамических узлов на одном сервере потребуются отдельные порты для gRPC, Interconnect, HTTP интерфейса и Kafka API каждого динамического узла в рамках сервера.
-
-Убедитесь в том, что системные часы на всех серверах в составе кластера синхронизированы с помощью инструментов `ntpd` или `chrony`. Желательно использовать единый источник времени для всех серверов кластера, чтобы обеспечить одинаковую обработку секунд координации (leap seconds).
-
-Если применяемый на серверах кластера тип Linux использует `syslogd` для логирования, необходимо настроить ротацию файлов лога с использованием инструмента `logrotate` или его аналогов. Сервисы {{ ydb-short-name }} могут генерировать значительный объем системных логов, в особенности при повышении уровня логирования для диагностических целей, поэтому важно включить ротацию файлов системного лога для исключения ситуаций переполнения файловой системы `/var`.
-
-Выберите серверы и диски, которые будут использоваться для хранения данных:
-
-* Используйте схему отказоустойчивости `block-4-2` для развертывания кластера в одной зоне доступности (AZ), задействуя не менее 8 серверов. Данная схема позволяет переживать отказ 2 серверов.
-* Используйте схему отказоустойчивости `mirror-3-dc` для развертывания кластера в трех зонах доступности (AZ), задействуя не менее 9 серверов. Данная схема позволяет переживать отказ 1 AZ и 1 сервера в другой AZ. Количество задействованных серверов в каждой AZ должно быть одинаковым.
-
-{% note info %}
-
-Запускайте каждый статический узел (узел хранения данных) на отдельном сервере. Возможно совмещение статических и динамических узлов на одном сервере, а также размещение на одном сервере нескольких динамических узлов при наличии достаточных вычислительных ресурсов.
-
-{% endnote %}
-
-Подробнее требования к оборудованию описаны в разделе [{#T}](../../../devops/concepts/system-requirements.md).
-
-### Подготовка ключей и сертификатов TLS {#tls-certificates}
-
-Защита трафика и проверка подлинности серверных узлов {{ ydb-short-name }} осуществляется с использованием протокола TLS. Перед установкой кластера необходимо спланировать состав серверов, определиться со схемой именования узлов и конкретными именами, и подготовить ключи и сертификаты TLS.
-
-Вы можете использовать существующие или сгенерировать новые сертификаты. Следующие файлы ключей и сертификатов TLS должны быть подготовлены в формате PEM:
-
-* `ca.crt` - сертификат центра регистрации (Certification Authority, CA), которым подписаны остальные сертификаты TLS (одинаковые файлы на всех узлах кластера);
-* `node.key` - секретные ключи TLS для каждого из узлов кластера (свой ключ на каждый сервер кластера);
-* `node.crt` - сертификаты TLS для каждого из узлов кластера (соответствующий ключу сертификат);
-* `web.pem` - конкатенация секретного ключа узла, сертификата узла и сертификата центра регистрации для работы HTTP интерфейса мониторинга (свой файл на каждый сервер кластера).
-
-Необходимые параметры формирования сертификатов определяются политикой организации. Обычно сертификаты и ключи для {{ ydb-short-name }} формируются со следующими параметрами:
-
-* ключи RSA длиною 2048 или 4096 бит;
-* алгоритм подписи сертификатов SHA-256 с шифрованием RSA;
-* срок действия сертификатов узлов не менее 1 года;
-* срок действия сертификата центра регистрации не менее 3 лет.
-
-Необходимо, чтобы сертификат центра регистрации был помечен соответствующим образом: должен быть установлен признак CA, а также включены виды использования "Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign".
-
-Для сертификатов узлов важно соответствие фактического имени хоста (или имён хостов) значениям, указанным в поле "Subject Alternative Name". Для сертификатов должны быть включены виды использования "Digital Signature, Key Encipherment" и расширенные виды использования "TLS Web Server Authentication, TLS Web Client Authentication". Необходимо, чтобы сертификаты узлов поддерживали как серверную, так и клиентскую аутентификацию (опция `extendedKeyUsage = serverAuth,clientAuth` в настройках OpenSSL).
-
-Для пакетной генерации или обновления сертификатов кластера {{ ydb-short-name }} с помощью программного обеспечения OpenSSL можно воспользоваться [примером скрипта](https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/tls_cert_gen/), размещённым в репозитории {{ ydb-short-name }} на GitHub. Скрипт позволяет автоматически сформировать необходимые файлы ключей и сертификатов для всего набора узлов кластера за одну операцию, облегчая подготовку к установке.
-
-## Создайте системного пользователя и группу, от имени которых будет работать {{ ydb-short-name }} {#create-user}
-
-На каждом сервере, где будет запущен {{ ydb-short-name }}, выполните:
-
-```bash
-sudo groupadd ydb
-sudo useradd ydb -g ydb
-```
-
-Для того, чтобы сервис {{ ydb-short-name }} имел доступ к блочным дискам для работы, необходимо добавить пользователя, под которым будут запущены процессы {{ ydb-short-name }}, в группу `disk`:
-
-```bash
-sudo usermod -aG disk ydb
-```
-
-## Настройте лимиты файловых дескрипторов {#file-descriptors}
-
-Для корректной работы {{ ydb-short-name }}, особенно при использовании [спиллинга](../../../concepts/query_execution/spilling.md) в многоузловых кластерах, рекомендуется увеличить лимит на количество одновременно открытых файловых дескрипторов.
-
-Для изменения лимита файловых дескрипторов добавьте следующие строки в файл `/etc/security/limits.conf`:
-
-```bash
-ydb soft nofile 10000
-ydb hard nofile 10000
-```
-
-Где `ydb` — имя пользователя, под которым запускается `ydbd`.
-
-После изменения файла необходимо перезагрузить систему или заново залогиниться для применения новых лимитов.
-
-{% note info %}
-
-Для получения дополнительной информации о конфигурации спиллинга и его связи с файловыми дескрипторами см. раздел [«Конфигурация спиллинга»](../../../reference/configuration/table_service_config.md#file-system-requirements).
-
-{% endnote %}
-
-## Установите программное обеспечение {{ ydb-short-name }} на каждом сервере {#install-binaries}
-
-1. Скачайте и распакуйте архив с исполняемым файлом `ydbd` и необходимыми для работы {{ ydb-short-name }} библиотеками:
-
- ```bash
- mkdir ydbd-stable-linux-amd64
- curl -L <binaries_url> | tar -xz --strip-component=1 -C ydbd-stable-linux-amd64
- ```
- где `binaries_url` ссылка на архив нужной вам версии со страницы [загрузок](../../../downloads/index.md)
-
-1. Скопируйте исполняемый файл и библиотеки в соответствующие директории:
-
- ```bash
- sudo cp -iR ydbd-stable-linux-amd64/bin /opt/ydb/
- sudo cp -iR ydbd-stable-linux-amd64/lib /opt/ydb/
- ```
-
-1. Установите владельца файлов и каталогов:
-
- ```bash
- sudo chown -R root:bin /opt/ydb
- ```
-
-## Подготовьте и очистите диски на каждом сервере {#prepare-disks}
-
-{% include [_includes/storage-device-requirements.md](../../../_includes/storage-device-requirements.md) %}
-
-Получить список блочных устройств на сервере можно командой `lsblk`. Пример вывода:
-
-```txt
-NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
-loop0 7:0 0 63.3M 1 loop /snap/core20/1822
-...
-vda 252:0 0 40G 0 disk
-├─vda1 252:1 0 1M 0 part
-└─vda2 252:2 0 40G 0 part /
-vdb 252:16 0 186G 0 disk
-└─vdb1 252:17 0 186G 0 part
-```
-
-Названия блочных устройств зависят от настроек операционной системы, заданных базовым образом или настроенных вручную. Обычно имена устройств состоят из трех частей:
-
-- Фиксированный префикс или префикс, указывающий на тип устройства
-- Последовательный идентификатор устройства (может быть буквой или числом)
-- Последовательный идентификатор раздела на данном устройстве (обычно число)
-
-1. Создайте разделы на выбранных дисках:
-
- {% note alert %}
-
- Следующая операция удалит все разделы на указанном диске! Убедитесь, что вы указали диск, на котором нет других данных!
-
- {% endnote %}
-
- ```bash
- DISK=/dev/nvme0n1
- sudo parted ${DISK} mklabel gpt -s
- sudo parted -a optimal ${DISK} mkpart primary 0% 100%
- sudo parted ${DISK} name 1 ydb_disk_ssd_01
- sudo partx --u ${DISK}
- ```
-
- Выполните команду `ls -l /dev/disk/by-partlabel/`, чтобы убедиться что в системе появился диск с меткой `/dev/disk/by-partlabel/ydb_disk_ssd_01`.
-
- Если вы планируете использовать более одного диска на каждом сервере, укажите для каждого свою уникальную метку вместо `ydb_disk_ssd_01`. Метки дисков должны быть уникальны в рамках каждого сервера, и используются в конфигурационных файлах, как показано в последующих инструкциях.
-
- Для упрощения последующей настройки удобно использовать одинаковые метки дисков на серверах кластера, имеющих идентичную конфигурацию дисков.
-
-2. Очистите диск встроенной в исполняемый файл `ydbd` командой:
-
- {% note warning %}
-
- После выполнения команды данные на диске сотрутся.
-
- {% endnote %}
-
- ```bash
- sudo LD_LIBRARY_PATH=/opt/ydb/lib /opt/ydb/bin/ydbd admin bs disk obliterate /dev/disk/by-partlabel/ydb_disk_ssd_01
- ```
-
- Проделайте данную операцию для каждого диска, который будет использоваться для хранения данных {{ ydb-short-name }}.
-
-### Пример полной команды для разметки 3-х дисков
-
-```bash
-DISK=/dev/vdb
-sudo parted ${DISK} mklabel gpt -s
-sudo parted -a optimal ${DISK} mkpart primary 0% 100%
-sudo parted ${DISK} name 1 ydb_disk_ssd_01
-sudo partx --u ${DISK}
-sleep 5
-sudo LD_LIBRARY_PATH=/opt/ydb/lib /opt/ydb/bin/ydbd admin bs disk obliterate /dev/disk/by-partlabel/ydb_disk_ssd_01
-
-DISK=/dev/vdc
-sudo parted ${DISK} mklabel gpt -s
-sudo parted -a optimal ${DISK} mkpart primary 0% 100%
-sudo parted ${DISK} name 1 ydb_disk_ssd_02
-sudo partx --u ${DISK}
-sleep 5
-sudo LD_LIBRARY_PATH=/opt/ydb/lib /opt/ydb/bin/ydbd admin bs disk obliterate /dev/disk/by-partlabel/ydb_disk_ssd_02
-
-DISK=/dev/vdd
-sudo parted ${DISK} mklabel gpt -s
-sudo parted -a optimal ${DISK} mkpart primary 0% 100%
-sudo parted ${DISK} name 1 ydb_disk_ssd_03
-sudo partx --u ${DISK}
-sleep 5
-sudo LD_LIBRARY_PATH=/opt/ydb/lib /opt/ydb/bin/ydbd admin bs disk obliterate /dev/disk/by-partlabel/ydb_disk_ssd_03
-```
-
-### Проверьте подготовку дисков
-
-Для проверки корректной разметки дисков выполните команду на каждом сервере кластера:
-
-```bash
-ls -al /dev/disk/by-partlabel/
-```
-
-В выводе команды должны быть созданные и размеченные вами диски
-
-```bash
-lrwxrwxrwx 1 root root 10 Nov 26 12:54 ydb_disk_ssd_01 -> ../../vdb1
-lrwxrwxrwx 1 root root 10 Nov 26 12:54 ydb_disk_ssd_02 -> ../../vdc1
-lrwxrwxrwx 1 root root 10 Nov 26 12:54 ydb_disk_ssd_03 -> ../../vdd1
-```
-
-## Подготовьте конфигурационные файлы {#config}
-
-Подготовьте конфигурационный файл {{ ydb-short-name }}:
-```yaml
-static_erasure: mirror-3-dc
-host_configs:
-- drive:
- - path: /dev/disk/by-partlabel/ydb_disk_ssd_01
- type: SSD
- - path: /dev/disk/by-partlabel/ydb_disk_ssd_02
- type: SSD
- - path: /dev/disk/by-partlabel/ydb_disk_ssd_03
- type: SSD
- host_config_id: 1
-hosts:
-- host: static-node-1.ydb-cluster.com
- host_config_id: 1
- walle_location:
- body: 1
- data_center: 'zone-a'
- rack: '1'
-- host: static-node-2.ydb-cluster.com
- host_config_id: 1
- walle_location:
- body: 2
- data_center: 'zone-b'
- rack: '2'
-- host: static-node-3.ydb-cluster.com
- host_config_id: 1
- walle_location:
- body: 3
- data_center: 'zone-d'
- rack: '3'
-domains_config:
- security_config:
- enforce_user_token_requirement: true
- default_users:
- - name: "root"
- password: ""
- default_access:
- - "+(F):root"
- domain:
- - name: Root
- storage_pool_types:
- - kind: ssd
- pool_config:
- box_id: 1
- erasure_species: mirror-3-dc
- kind: ssd
- geometry:
- realm_level_begin: 10
- realm_level_end: 20
- domain_level_begin: 10
- domain_level_end: 256
- pdisk_filter:
- - property:
- - type: SSD
- vdisk_kind: Default
- state_storage:
- - ring:
- node: [1, 2, 3]
- nto_select: 3
- ssid: 1
-table_service_config:
- sql_version: 1
-actor_system_config:
- executor:
- - name: System
- threads: 2
- type: BASIC
- - name: User
- threads: 3
- type: BASIC
- - name: Batch
- threads: 2
- type: BASIC
- - name: IO
- threads: 1
- time_per_mailbox_micro_secs: 100
- type: IO
- - name: IC
- spin_threshold: 10
- threads: 1
- time_per_mailbox_micro_secs: 100
- type: BASIC
- scheduler:
- progress_threshold: 10000
- resolution: 256
- spin_threshold: 0
-blob_storage_config:
- service_set:
- groups:
- - erasure_species: mirror-3-dc
- rings:
- - fail_domains:
- - vdisk_locations:
- - node_id: static-node-1.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_01
- - vdisk_locations:
- - node_id: static-node-1.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_02
- - vdisk_locations:
- - node_id: static-node-1.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_03
- - fail_domains:
- - vdisk_locations:
- - node_id: static-node-2.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_01
- - vdisk_locations:
- - node_id: static-node-2.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_02
- - vdisk_locations:
- - node_id: static-node-2.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_03
- - fail_domains:
- - vdisk_locations:
- - node_id: static-node-3.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_01
- - vdisk_locations:
- - node_id: static-node-3.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_02
- - vdisk_locations:
- - node_id: static-node-3.ydb-cluster.com
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_ssd_03
-channel_profile_config:
- profile:
- - channel:
- - erasure_species: mirror-3-dc
- pdisk_category: 0
- storage_pool_kind: ssd
- - erasure_species: mirror-3-dc
- pdisk_category: 0
- storage_pool_kind: ssd
- - erasure_species: mirror-3-dc
- pdisk_category: 0
- storage_pool_kind: ssd
- profile_id: 0
-interconnect_config:
- start_tcp: true
- encryption_mode: OPTIONAL
- path_to_certificate_file: "/opt/ydb/certs/node.crt"
- path_to_private_key_file: "/opt/ydb/certs/node.key"
- path_to_ca_file: "/opt/ydb/certs/ca.crt"
-grpc_config:
- cert: "/opt/ydb/certs/node.crt"
- key: "/opt/ydb/certs/node.key"
- ca: "/opt/ydb/certs/ca.crt"
- services_enabled:
- - legacy
-client_certificate_authorization:
- request_client_certificate: true
- client_certificate_definitions:
- - member_groups: ["registerNode@cert"]
- subject_terms:
- - short_name: "O"
- values: ["YDB"]
-```
-
-Для ускорения и упрощения первичного развёртывания {{ ydb-short-name }} конфигурационный файл уже содержит большинство настроек для установки кластера. Достаточно заменить стандартные хосты FQDN на актуальные в разделах `hosts` и `blob_storage_config`.
-
-* Раздел `hosts`:
-
- ```yaml
- ...
- hosts:
- - host: static-node-1.ydb-cluster.com #FQDN ВМ
- host_config_id: 1
- walle_location:
- body: 1
- data_center: 'zone-a'
- rack: '1'
- ...
- ```
-
-* Раздел `blob_storage_config`:
-
- ```yaml
- ...
- - fail_domains:
- - vdisk_locations:
- - node_id: static-node-1.ydb-cluster.com #FQDN ВМ
- pdisk_category: SSD
- path: /dev/disk/by-partlabel/ydb_disk_1
- ...
- ```
-
-Остальные секции и настройки конфигурационного файла остаются без изменений.
-
-Сохраните конфигурационный файл YDB под именем `/opt/ydb/cfg/config.yaml` на каждом сервере кластера.
-
-Более подробная информация по созданию файла конфигурации приведена в разделе [{#T}](../../../reference/configuration/index.md).
-
-## Скопируйте ключи и сертификаты TLS на каждый сервер {#tls-copy-cert}
-
-Подготовленные ключи и сертификаты TLS необходимо скопировать в защищенный каталог на каждом из узлов кластера {{ ydb-short-name }}. Ниже приведен пример команд для создания защищенного каталога и копирования файлов с ключами и сертификатами.
-
-```bash
-sudo mkdir -p /opt/ydb/certs
-sudo cp -v ca.crt /opt/ydb/certs/
-sudo cp -v node.crt /opt/ydb/certs/
-sudo cp -v node.key /opt/ydb/certs/
-sudo cp -v web.pem /opt/ydb/certs/
-sudo chown -R ydb:ydb /opt/ydb/certs
-sudo chmod 700 /opt/ydb/certs
-```
-
-## Запустите статические узлы {#start-storage}
-
-{% list tabs group=manual-systemd %}
-
-- Вручную
-
- Запустите сервис хранения данных {{ ydb-short-name }} на каждом статическом узле кластера:
-
- ```bash
- sudo su - ydb
- cd /opt/ydb
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd server --log-level 3 --syslog --tcp --config-dir /opt/ydb/cfg \
- --grpcs-port 2135 --ic-port 19001 --mon-port 8765 --mon-cert /opt/ydb/certs/web.pem --node static
- ```
-
-- С использованием systemd
-
- Создайте на каждом сервере, где будет размещен статический узел кластера, конфигурационный файл systemd `/etc/systemd/system/ydbd-storage.service` по приведенному ниже образцу. Образец файла также можно [скачать из репозитория](https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/systemd_services/ydbd-storage.service).
-
- ```ini
- [Unit]
- Description=YDB storage node
- After=network-online.target rc-local.service
- Wants=network-online.target
- StartLimitInterval=10
- StartLimitBurst=15
-
- [Service]
- Restart=always
- RestartSec=1
- User=ydb
- PermissionsStartOnly=true
- StandardOutput=syslog
- StandardError=syslog
- SyslogIdentifier=ydbd
- SyslogFacility=daemon
- SyslogLevel=err
- Environment=LD_LIBRARY_PATH=/opt/ydb/lib
- ExecStart=/opt/ydb/bin/ydbd server --log-level 3 --syslog --tcp \
- --config-dir /opt/ydb/cfg \
- --grpcs-port 2135 --ic-port 19001 --mon-port 8765 \
- --mon-cert /opt/ydb/certs/web.pem --node static
- LimitNOFILE=65536
- LimitCORE=0
- LimitMEMLOCK=3221225472
-
- [Install]
- WantedBy=multi-user.target
- ```
-
- Запустите сервис на каждом статическом узле {{ ydb-short-name }}:
-
- ```bash
- sudo systemctl start ydbd-storage
- ```
-
-{% endlist %}
-
-После запуска статических узлов проверьте их работоспособность через встроенный веб-интерфейс {{ ydb-short-name }} (Embedded UI):
-
-1. Откройте в браузере адрес `https://<node.ydb.tech>:8765`, где `<node.ydb.tech>` - FQDN сервера, на котором запущен любой статический узел;
-2. Перейдите на вкладку **Nodes**;
-3. Убедитесь, что в списке отображаются все 3 статических узла.
-
-![Ручная установка, запущенные статические узлы](../_assets/manual_installation_1.png)
-
-## Инициализируйте кластер {#initialize-cluster}
-
-Операция инициализации кластера осуществляет настройку набора статических узлов, перечисленных в конфигурационном файле кластера, для хранения данных {{ ydb-short-name }}.
-
-Для инициализации кластера потребуется файл сертификата центра регистрации `ca.crt`, путь к которому должен быть указан при выполнении соответствующих команд. Перед выполнением соответствующих команд скопируйте файл `ca.crt` на сервер, на котором эти команды будут выполняться.
-
-На одном из серверов хранения в составе кластера выполните команды:
-
-Сначала получите авторизационный токен для регистрации запросов. Для этого выполните приведённую ниже команду.
-
-```bash
-/opt/ydb/bin/ydb --ca-file ca.crt -e grpcs://`hostname -f`:2135 -d /Root --user root --no-password auth get-token -f > auth_token
-```
-
-Инициализируйте кластер используя полученный токен
-
-```bash
-export LD_LIBRARY_PATH=/opt/ydb/lib
-/opt/ydb/bin/ydbd --ca-file ca.crt -s grpcs://`hostname -f`:2135 -f auth_token \
- admin blobstorage config init --yaml-file /opt/ydb/cfg/config.yaml
-echo $?
-```
-
-При успешном выполнении инициализации кластера выведенный на экран код завершения команды инициализации кластера должен быть нулевым.
-
-## Создайте базу данных {#create-db}
-
-Для работы со строковыми или колоночными таблицами необходимо создать как минимум одну базу данных и запустить процесс или процессы, обслуживающие эту базу данных (динамические узлы).
-
-Для выполнения административной команды создания базы данных потребуется файл сертификата центра регистрации `ca.crt`, аналогично описанному выше порядку выполнения действий по инициализации кластера.
-
-При создании базы данных устанавливается первоначальное количество используемых групп хранения, определяющее доступную пропускную способность ввода-вывода и максимальную емкость хранения. Количество групп хранения может быть при необходимости увеличено после создания базы данных.
-
-На одном из серверов хранения в составе кластера выполните команды:
-
-```bash
-export LD_LIBRARY_PATH=/opt/ydb/lib
-/opt/ydb/bin/ydbd --ca-file ca.crt -s grpcs://`hostname -f`:2135 -f auth_token \
- admin database /Root/testdb create ssd:8
-echo $?
-```
-
-При успешном создании базы данных, выведенный на экран код завершения команды должен быть нулевым.
-
-В приведенном выше примере команд используются следующие параметры:
-
-* `/Root` - имя корневого домена, сгенерированного автоматически при инициализации кластера;
-* `testdb` - имя создаваемой базы данных;
-* `ssd:8` - задает пул хранения для базы данных и количество групп в нем. Имя пула (`ssd`) должно соответствовать типу диска, указанному в конфигурации кластера (например, в `default_disk_type`), и является регистронезависимым. Число после двоеточия — это количество выделяемых групп хранения.
-
-## Запустите динамические узлы {#start-dynnode}
-
-{% list tabs group=manual-systemd %}
-
-- Вручную
-
- Запустите динамический узел {{ ydb-short-name }} для базы `/Root/testdb`:
-
- ```bash
- sudo su - ydb
- cd /opt/ydb
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd server --grpcs-port 2136 --grpc-ca /opt/ydb/certs/ca.crt \
- --ic-port 19002 --ca /opt/ydb/certs/ca.crt \
- --mon-port 8766 --mon-cert /opt/ydb/certs/web.pem \
- --kafka-port 9093 \
- --config-dir /opt/ydb/cfg \
- --tenant /Root/testdb \
- --grpc-cert /opt/ydb/certs/node.crt \
- --grpc-key /opt/ydb/certs/node.key \
- --node-broker grpcs://<ydb-static-node1>:2135 \
- --node-broker grpcs://<ydb-static-node2>:2135 \
- --node-broker grpcs://<ydb-static-node3>:2135
- ```
-
- В примере команды выше `<ydb-static-node1>` , `<ydb-static-node2>`, `<ydb-static-node3>` - FQDN трех любых серверов, на которых запущены статические узлы кластера.
-
-- С использованием systemd
-
- Создайте конфигурационный файл systemd `/etc/systemd/system/ydbd-testdb.service` по приведенному ниже образцу. Образец файла также можно [скачать из репозитория](https://github.com/ydb-platform/ydb/blob/main/ydb/deploy/systemd_services/ydbd-testdb.service).
-
- ```ini
- [Unit]
- Description=YDB testdb dynamic node
- After=network-online.target rc-local.service
- Wants=network-online.target
- StartLimitInterval=10
- StartLimitBurst=15
-
- [Service]
- Restart=always
- RestartSec=1
- User=ydb
- PermissionsStartOnly=true
- StandardOutput=syslog
- StandardError=syslog
- SyslogIdentifier=ydbd
- SyslogFacility=daemon
- SyslogLevel=err
- Environment=LD_LIBRARY_PATH=/opt/ydb/lib
- ExecStart=/opt/ydb/bin/ydbd server \
- --grpcs-port 2136 --grpc-ca /opt/ydb/certs/ca.crt \
- --ic-port 19002 --ca /opt/ydb/certs/ca.crt \
- --mon-port 8766 --mon-cert /opt/ydb/certs/web.pem \
- --kafka-port 9093 \
- --config-dir /opt/ydb/cfg \
- --tenant /Root/testdb \
- --grpc-cert /opt/ydb/certs/node.crt \
- --grpc-key /opt/ydb/certs/node.key \
- --node-broker grpcs://<ydb-static-node1>:2135 \
- --node-broker grpcs://<ydb-static-node2>:2135 \
- --node-broker grpcs://<ydb-static-node3>:2135
- LimitNOFILE=65536
- LimitCORE=0
- LimitMEMLOCK=32212254720
-
- [Install]
- WantedBy=multi-user.target
- ```
-
- В примере команды выше `<ydb-static-node1>` , `<ydb-static-node2>`, `<ydb-static-node3>` - FQDN трех любых серверов, на которых запущены статические узлы кластера.
-
- Запустите динамический узел {{ ydb-short-name }} для базы `/Root/testdb`:
-
- ```bash
- sudo systemctl start ydbd-testdb
- ```
-
-{% endlist %}
-
-Запустите дополнительные динамические узлы на других серверах для масштабирования и обеспечения отказоустойчивости базы данных.
-
-## Настройка учетных записей {#security-setup}
-
-1. Установите пароль для учетной записи `root`, используя полученный ранее токен:
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --token-file auth_token \
- yql -s 'ALTER USER root PASSWORD "passw0rd"'
- ```
-
- Вместо значения `passw0rd` подставьте необходимый пароль. Сохраните пароль в отдельный файл. Последующие команды от имени пользователя `root` будут выполняться с использованием пароля, передаваемого с помощью ключа `--password-file <path_to_user_password>`. Также пароль можно сохранить в профиле подключения, как описано в [документации {{ ydb-short-name }} CLI](../../../reference/ydb-cli/profile/index.md).
-
-1. Создайте дополнительные учетные записи:
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root --password-file <path_to_root_pass_file> \
- yql -s 'CREATE USER user1 PASSWORD "passw0rd"'
- ```
-
-1. Установите права учетных записей, включив их во встроенные группы:
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root --password-file <path_to_root_pass_file> \
- yql -s 'ALTER GROUP `ADMINS` ADD USER user1'
- ```
-
-В перечисленных выше примерах команд `<node.ydb.tech>` — FQDN сервера, на котором запущен любой динамический узел, обслуживающий базу `/Root/testdb`. При подключении по SSH к динамическому узлу {{ ydb-short-name }} удобно использовать конструкцию `grpcs://$(hostname -f):2136` для получения FQDN.
-
-При выполнении команд создания учётных записей и присвоения групп клиент {{ ydb-short-name }} CLI будет запрашивать ввод пароля пользователя `root`. Избежать многократного ввода пароля можно, создав профиль подключения, как описано в [документации {{ ydb-short-name }} CLI](../../../reference/ydb-cli/profile/index.md).
-
-## Протестируйте работу с созданной базой {#try-first-db}
-
-1. Установите {{ ydb-short-name }} CLI, как описано в [документации](../../../reference/ydb-cli/install.md).
-
-1. Создайте тестовую строковую (`test_row_table`) или колоночную таблицу (`test_column_table`):
-
-{% list tabs %}
-
-- Создание строковой таблицы
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root \
- yql -s 'CREATE TABLE `testdir/test_row_table` (id Uint64, title Utf8, PRIMARY KEY (id));'
- ```
-
-- Создание колоночной таблицы
-
- ```bash
- ydb --ca-file ca.crt -e grpcs://<node.ydb.tech>:2136 -d /Root/testdb --user root \
- yql -s 'CREATE TABLE `testdir/test_column_table` (id Uint64 NOT NULL, title Utf8, PRIMARY KEY (id)) WITH (STORE = COLUMN);'
- ```
-
-{% endlist %}
-
-Где `<node.ydb.tech>` - FQDN сервера, на котором запущен динамический узел, обслуживающий базу `/Root/testdb`.
-
-## Проверка доступа ко встроенному web-интерфейсу
-
-Для проверки доступа ко встроенному web-интерфейсу {{ ydb-short-name }} достаточно открыть в Web-браузере страницу с адресом `https://<node.ydb.tech>:8765`, где `<node.ydb.tech>` - FQDN сервера, на котором запущен любой статический узел {{ ydb-short-name }}.
-
-В Web-браузере должно быть настроено доверие в отношении центра регистрации, выпустившего сертификаты для кластера {{ ydb-short-name }}, в противном случае будет отображено предупреждение об использовании недоверенного сертификата.
-
-Если в кластере включена аутентификация, в Web-браузере должен отобразиться запрос логина и пароля. После ввода верных данных аутентификации должна отобразиться начальная страница встроенного web-интерфейса. Описание доступных функций и пользовательского интерфейса приведено в разделе [{#T}](../../../reference/embedded-ui/index.md).
-
-{% note info %}
-
-Обычно для обеспечения доступа ко встроенному web-интерфейсу {{ ydb-short-name }} настраивают отказоустойчивый HTTP-балансировщик на базе программного обеспечения `haproxy`, `nginx` или аналогов. Детали настройки HTTP-балансировщика выходят за рамки стандартной инструкции по установке {{ ydb-short-name }}.
-
-{% endnote %}
-
-
-## Особенности установки {{ ydb-short-name }} в незащищенном режиме
-
-{% note warning %}
-
-Мы не рекомендуем использовать незащищенный режим работы {{ ydb-short-name }} ни при эксплуатации, ни при разработке приложений.
-
-{% endnote %}
-
-Описанная выше процедура установки предусматривает развёртывание {{ ydb-short-name }} в стандартном защищенном режиме.
-
-Незащищённый режим работы {{ ydb-short-name }} предназначен для решения тестовых задач, преимущественно связанных с разработкой и тестированием программного обеспечения {{ ydb-short-name }}. В незащищенном режиме:
-
-* трафик между узлами кластера, а также между приложениями и кластером использует незашифрованные соединения;
-* не используется аутентификация пользователей (включение аутентификации при отсутствии шифрования трафика не имеет смысла, поскольку логин и пароль в такой конфигурации передавались бы через сеть в открытом виде).
-
-Установка {{ ydb-short-name }} для работы в незащищенном режиме производится в порядке, описанном выше, со следующими исключениями:
-
-1. При подготовке к установке не требуется формировать сертификаты и ключи TLS, и не выполняется копирование сертификатов и ключей на узлы кластера.
-1. Из конфигурационных файлов кластерных узлов исключаются секции `security_config`, `interconnect_config` и `grpc_config`.
-1. Используются упрощенный вариант команд запуска статических и динамических узлов кластера: исключаются опции с именами файлов сертификатов и ключей, используется протокол `grpc` вместо `grpcs` при указании точек подключения.
-1. Пропускается ненужный в незащищенном режиме шаг по получению токена аутентификации перед выполнением инициализации кластера и созданием базы данных.
-1. Команда инициализации кластера выполняется в следующей форме:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- ydb admin cluster bootstrap --uuid <строка>
- echo $?
- ```
-
-1. Команда создания базы данных выполняется в следующей форме:
-
- ```bash
- export LD_LIBRARY_PATH=/opt/ydb/lib
- /opt/ydb/bin/ydbd admin database /Root/testdb create ssd:1
- ```
-
-1. При обращении к базе данных из {{ ydb-short-name }} CLI и приложений используется протокол grpc вместо grpcs, и не используется аутентификация.
diff --git a/ydb/docs/ru/core/devops/deployment-options/manual/node-authorization.md b/ydb/docs/ru/core/devops/deployment-options/manual/node-authorization.md
index a4f8c53ccb7..dfc0dd195d8 100644
--- a/ydb/docs/ru/core/devops/deployment-options/manual/node-authorization.md
+++ b/ydb/docs/ru/core/devops/deployment-options/manual/node-authorization.md
@@ -25,7 +25,7 @@
{% endnote %}
-2. В параметры командной строки для [запуска узлов баз данных](./initial-deployment/index.md#start-dynnode) необходимо добавить опции, задающие пути к файлам сертификатов доверенных центров сертификации, сертификата узла и ключа узла. Список дополнительных опций приведён в таблице ниже.
+2. В параметры командной строки для [запуска узлов баз данных](./initial-deployment/deployment-configuration-v1.md#start-dynnode) необходимо добавить опции, задающие пути к файлам сертификатов доверенных центров сертификации, сертификата узла и ключа узла. Список дополнительных опций приведён в таблице ниже.
| **Опция командной строки** | **Описание** |
|----------------------------|--------------|
diff --git a/ydb/docs/ru/core/devops/observability/monitoring.md b/ydb/docs/ru/core/devops/observability/monitoring.md
index 038c973ed25..c8e059f31d3 100644
--- a/ydb/docs/ru/core/devops/observability/monitoring.md
+++ b/ydb/docs/ru/core/devops/observability/monitoring.md
@@ -96,7 +96,7 @@ http://<ydb-server-address>:<ydb-port>/counters/counters=<servicename>/prometheu
- "localhost:8765"
```
- 1. В файле [`prometheus_ydb.yml`](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/prometheus/prometheus_ydb.yml) при необходимости в секции `tls_config` укажите [сертификат центра регистрации](../deployment-options/manual/initial-deployment/index.md#tls-certificates) (Certification Authority, CA), которым подписаны остальные сертификаты TLS кластера {{ ydb-short-name }}:
+ 1. В файле [`prometheus_ydb.yml`](https://github.com/ydb-platform/ydb/tree/main/ydb/deploy/prometheus/prometheus_ydb.yml) при необходимости в секции `tls_config` укажите [сертификат центра регистрации](../deployment-options/manual/initial-deployment/deployment-preparation.md#tls-certificates) (Certification Authority, CA), которым подписаны остальные сертификаты TLS кластера {{ ydb-short-name }}:
```json
scheme: https
diff --git a/ydb/docs/ru/core/maintenance/manual/dynamic-config.md b/ydb/docs/ru/core/maintenance/manual/dynamic-config.md
index 60859137cbf..1ba9ffc928f 100644
--- a/ydb/docs/ru/core/maintenance/manual/dynamic-config.md
+++ b/ydb/docs/ru/core/maintenance/manual/dynamic-config.md
@@ -25,7 +25,7 @@
admin console configs dump-yaml > dynconfig.yaml
```
- Предварительно необходимо получить токен аутентификации с помощью команды `ydb auth get-token`, аналогично [процедуре инициализации кластера](../../devops/deployment-options/manual/initial-deployment/index.md#initialize-cluster).
+ Предварительно необходимо получить токен аутентификации с помощью команды `ydb auth get-token`, аналогично [процедуре инициализации кластера](../../devops/deployment-options/manual/initial-deployment/deployment-configuration-v1.md#initialize-cluster).
1. Сформируйте первоначальный файл динамической конфигурации:
diff --git a/ydb/docs/ru/core/reference/configuration/table_service_config.md b/ydb/docs/ru/core/reference/configuration/table_service_config.md
index d747e23c617..630ede728ef 100644
--- a/ydb/docs/ru/core/reference/configuration/table_service_config.md
+++ b/ydb/docs/ru/core/reference/configuration/table_service_config.md
@@ -168,7 +168,7 @@ table_service_config:
{% note info %}
-Для получения информации о настройке лимитов файловых дескрипторов при первоначальном развертывании см. раздел [Лимиты файловых дескрипторов](../../../devops/deployment-options/manual/initial-deployment.html#file-descriptors).
+Для получения информации о настройке лимитов файловых дескрипторов при первоначальном развертывании см. раздел [Лимиты файловых дескрипторов](../../devops/deployment-options/manual/initial-deployment/deployment-preparation.md#file-descriptors).
{% endnote %}