Управление хостами кластера
Вы можете добавлять и удалять хосты кластера, запускать повторную синхронизацию хостов, а также управлять настройками MongoDB для отдельных кластеров.
Получить список хостов в кластере
-
Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
-
Нажмите на имя нужного кластера, затем выберите вкладку Хосты.
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы получить список хостов в кластере, выполните команду:
$ yc managed-mongodb host list
--cluster-name <имя кластера>
+----------------------------+--------------+--------+------------+--------------+----------+---------------+-----------+
| NAME | CLUSTER ID | TYPE | SHARD NAME | ROLE | HEALTH | ZONE ID | PUBLIC IP |
+----------------------------+--------------+--------+------------+--------------+----------+---------------+-----------+
| rc1b...mdb.yandexcloud.net | c9qp71dk1... | MONGOD | rs01 | PRIMARY | ALIVE | ru-central1-b | false |
| rc1c...mdb.yandexcloud.net | c9qp71dk1... | MONGOD | rs01 | SECONDARY | ALIVE | ru-central1-c | false |
+----------------------------+--------------+--------+------------+--------------+----------+---------------+-----------+
Имя кластера можно запросить со списком кластеров в каталоге.
Получить список хостов кластера можно с помощью метода listHosts.
Добавить хост
Количество хостов в кластерах Managed Service for MongoDB ограничено квотами на количество CPU и объем памяти, которые доступны кластерам БД в вашем облаке. Чтобы проверить используемые ресурсы, откройте страницу Квоты и найдите блок Yandex Managed Service for MongoDB.
Вы можете добавлять в кластер хосты разных типов. Их количество зависит от типа шардирования:
Тип шардирования | MONGOD | MONGOINFRA | MONGOS | MONGOCFG |
---|---|---|---|---|
Без шардирования | ⩾ 1 | — | — | — |
Стандартный | ⩾ 1 | ⩾ 3 | — | — |
Расширенный | ⩾ 1 | — | ⩾ 2 | ⩾ 3 |
-
Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
-
Нажмите на имя нужного кластера и перейдите на вкладку Хосты.
-
Нажмите кнопку Добавить хост.
-
Укажите параметры хоста:
-
зону доступности;
-
подсеть (если нужной подсети в списке нет, создайте ее);
-
выберите опцию Публичный доступ, если хост должен быть доступен извне Yandex.Cloud;
-
тип хоста и название шарда, если в кластере включено шардирование.
-
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы добавить хост в кластере:
-
Запросите список подсетей кластера, чтобы выбрать подсеть для нового хоста:
$ yc vpc subnet list +-----------+-----------+------------+---------------+------------------+ | ID | NAME | NETWORK ID | ZONE | RANGE | +-----------+-----------+------------+---------------+------------------+ | b0cl69... | default-c | enp6rq7... | ru-central1-c | [172.16.0.0/20] | | e2lkj9... | default-b | enp6rq7... | ru-central1-b | [10.10.0.0/16] | | e9b0ph... | a-2 | enp6rq7... | ru-central1-a | [172.16.32.0/20] | | e9b9v2... | default-a | enp6rq7... | ru-central1-a | [172.16.16.0/20] | +-----------+-----------+------------+---------------+------------------+
Если нужной подсети в списке нет, создайте ее.
-
Посмотрите описание команды CLI для добавления хостов:
$ yc managed-mongodb host add --help
-
Выполните команду добавления хоста:
$ yc managed-mongodb host add --cluster-name <имя кластера> --host zone-id=<зона доступности>,subnet-id=<ID подсети>
Managed Service for MongoDB запустит операцию добавления хоста.
Идентификатор подсети необходимо указать, если в зоне доступности больше одной подсети, в противном случае Managed Service for MongoDB автоматически выберет единственную подсеть. Имя кластера можно запросить со списком кластеров в каталоге.
Добавить хост в кластер можно с помощью метода addHosts.
Удалить хост
Вы можете удалить хост MONGOD
из MongoDB-кластера, если он не является единственным хостом. Чтобы заменить единственный хост, сначала создайте новый хост, а затем удалите старый.
Если хост является первичным в момент удаления, Managed Service for MongoDB автоматически выберет новую первичную реплику.
Также в кластере с включенным шардированием допустимо удалить хосты MONGOS
, MONGOCFG
или MONGOINFRA
, если их в кластере больше, чем минимальное количество, которое требуется для обеспечения работы шардирования.
-
Перейдите на страницу каталога и выберите сервис Managed Service for MongoDB.
-
Нажмите на имя нужного кластера и выберите вкладку Хосты.
-
Нажмите значок в строке нужного хоста и выберите пункт Удалить.
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы удалить хост из кластера, выполните команду:
$ yc managed-mongodb host delete <имя хоста>
--cluster-name <имя кластера>
Имя хоста можно запросить со списком хостов в кластере, имя кластера — со списком кластеров в каталоге.
Удалить хост можно с помощью метода deleteHosts.
Запустить ресинхронизацию хоста
Чтобы повторно синхронизировать хост с остальными репликами в кластере или шарде Managed Service for MongoDB, выполните операцию принудительной синхронизации. Операция применяется только к одному хосту MONGOD
за раз и только для кластеров с более чем двумя репликами, независимо от класса и типа хостов. Ресинхронизация также позволяет освободить хранилище хоста от коллекций и документов, которые помечены как удаленные.
При выполнении этой операции:
-
Хост перестает принимать запросы на запись. Если хост был первичной репликой (
PRIMARY
), то Managed Service for MongoDB попытается сделать его вторичной репликой (SECONDARY
). В случае неудачи операция прерывается. -
Инстанс MongoDB на хосте останавливается, и все данные удаляются.
-
Инстанс MongoDB снова запускается и заново скачивает данные с хостов-реплик.
-
После того, как хост синхронизировался другими репликами в кластере, он становится вторичной репликой.
Примечание
- Во время синхронизации хост не сможет полноценно отвечать на запросы, так как на нем будет находиться только часть данных кластера Managed Service for MongoDB.
- Оценочная скорость синхронизации: от 300 Гб в сутки.
Если у вас еще нет интерфейса командной строки Yandex.Cloud, установите и инициализируйте его.
По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --folder-name
или --folder-id
.
Чтобы запустить принудительную ресинхронизацию хоста, выполните команду:
$ yc managed-mongodb hosts resetup <имя_хоста>
--cluster-name <имя кластера>
Имя хоста можно запросить со списком хостов в каталоге. Имя кластера можно запросить со списком кластеров в каталоге.