Администрирование Pangolin DCS#
Pangolin DCS — это модуль распределенного хранилища конфигурации внутри компонента Pangolin Manager, который реализует Raft-алгоритм.
Raft-алгоритм решения консенсуса в кластере надежных вычислений#
Основы алгоритма#
Raft используется поверх кластера однообразных слабо связных узлов, на каждом из которых работает машина состояний. Raft-алгоритм обеспечивает надежную доставку сигналов на все узлы в заданном порядке. Благодаря чему обеспечивается переход всех машин состояний по одним и тем же последовательностям состояний, и каждый узел гарантированно приходит в согласие с другими узлами.
В Raft-кластере каждый из серверов в каждый момент времени находится в одном из трех состояний:
leader (мастер) – сервер обрабатывает все клиентские запросы, является источником истины всех данных в логе, поддерживает лог ведомых серверов;
follower (реплика) – пассивный сервер, который только «слушает» новые записи в лог от мастера и перенаправляет все входящие запросы от клиентов на мастера;
candidate (кандидат) – специальное состояние сервера, возможное только в момент выборов нового мастера (голосования).
Управление кластером четко разделено на две фазы:
выборы мастера (голосование);
репликация (передача данных протокола).
Выборы мастера#
Raft предполагает, что на кластере всегда существует явно выделенный мастер. Только мастер отправляет новые записи на другие узлы (реплики) кластера. Остальные узлы следуют за мастером и не взаимодействуют между собой (за исключением фазы голосования). Если внешний клиент подключается к кластеру через обычный узел, то все его запросы перенаправляются мастеру и только оттуда приходят на остальные узлы.
Если узел долго не получает сообщений от мастера, то он переходит в состояние кандидата и посылает другим узлам запрос на голосование. Другие узлы голосуют за того кандидата, от которого они получили первый запрос. Если кандидат получает сообщение от мастера, то он снимает свою кандидатуру и возвращается в обычное состояние. Если кандидат получает большинство голосов, то он становится мастером. Если он не получил большинства (это случай, когда на кластере возникли сразу несколько кандидатов и голоса разделились), то кандидат ждет случайное время и инициирует новую процедуру голосования.
Процедура голосования повторяется, пока не будет выбран мастер. Как только мастер определен, все узлы узнают о нем и начинается процесс репликации данных протокола.
Репликация протокола#
Мастер полностью отвечает за правильную репликацию протоколов. Он отправляет всем узлам кластера запрос на добавление новой записи и считает транзакцию успешной только после того, как большинство узлов подтвердили, что данные были применены и результат сохранен на постоянный носитель.
Установка Pangolin DCS#
Pangolin DCS является частью Pangolin Manager. Развертывание Pangolin DCS происходит поэтапно:
Включение параметра
pangolin_dcs_enableпри установке Pangolin Manager.Установка Pangolin Manager происходит при установке СУБД Pangolin. Чтобы включить параметр
pangolin_dcs_enable, добавьте его со значениемtrueв файлcustom_config_sample.yml. Пример раздела для установки Pangolin DCS в файлеcustom_config_sample.yml:pangolin_dcs_enable: true pangolin_dcs_params: raft_data_dir: "{{ PGDATA.rstrip('data/') }}/raft_data" dump_dir: "{{ PGDATA.rstrip('data/') }}/raft_dump" logfile: "{{ PGLOGS }}/raft/raft.log" heartbeat_interval: 1000 election_timeout: 5000 verify_client: optional verify_server: true no_tls1_3: false pangolin_dcs_rest_api: dcs_root: root dcs_root_password: dcs_client_user: pangolindcs dcs_client_password: <Пароль пользователя> verify_client: optional ciphers: DEFAULT:!SSLv1:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1 allowlist: ""Примечание
В связи с добавлением утилит безопасности в основной пакет Pangolin Manager, на узле арбитра производится их настройка аналогично узлам с DBMS — создание пользователя безопасности
kmadmin_pgи настройка каталогов с утилитами.Настройка параметров Pangolin DCS (идентификатор кластера, состав кластера).
Настройка параметров описана в следующих разделах.
Настройка Pangolin DCS#
Настройка конфигурационных файлов#
Настройка Pangolin DCS осуществляется параметрами в конфигурационном файле postgres.yml. Ниже приведен пример настройки параметров секции pangolin_dcs. В конфигурационном файле этой секцией замените секцию etcd:
pangolin_dcs:
self_addr: srv-0-141:2481
partner_addrs: srv-0-134:2481,srv-0-137:2481
data_dir: /pgdata/07/raft_data
journal_max_size: 10485760
journal_wait_timeout: 10
memory_journal_size: 10000
journal_force_read_wait: true
dump_dir: /pgdata/07/raft_dump
dump_interval: 300
dump_wait_timeout: 10
logfile: /pangolinlogs/pangolin-manager/raft/raft.log
log_max_size: 20971520
log_rotation_period: 1d
heartbeat_interval: 1000
election_timeout: 5000
certfile: '/pg_ssl/patroni_server.crt'
keyfile: '/pg_ssl/patroni_server.key'
cafile: '/pg_ssl/root.crt'
capath: '/pg_ssl'
crlfile: /pg_ssl/crl/intermediate.crl
crlpath: /pg_ssl/crl
pkcs12_config_path: /pg_ssl/intermediate/patroni_server.p12.cfg
verify_client: optional
verify_server: true
no_tls1_3: false
Параметры:
обязательные параметры:
self_addr— адрес текущего узла в форматеip:port;partner_addrs— список адресов остальных узлов в форматеip1:port1,ip2:port2;data_dir— путь к директории для хранения журнала операций и текущих значений ключей;
необязательные параметры:
journal_max_size— максимальный размер в байтах для файла с журналом операций, по умолчанию 10 МБ;journal_wait_timeout— время тайм-аута, по истечении которого операция записи/чтения журнала считается неуспешной, по умолчанию равен параметруloop_waitили 10с;memory_journal_size— число максимально содержащихся в памяти последних записей журнала, по умолчанию10000;journal_force_read_wait— если равенtrue, то при рестарте службыpangolin-managerвыполняется перечитывание журнала операций, по умолчаниюtrue;dump_dir— путь к директории для хранения дампа, по умолчанию равенdata_dir;dump_interval— интервал создания дампа, в секундах, по умолчанию равен300;dump_wait_timeout— время тайм-аута, по истечении которого операция записи/чтения дампа считается неуспешной, по умолчанию равен параметруloop_waitили 10 (секундам);logfile— путь к файлу с логом отpangolin_dcs, по умолчанию равенdata_dir/raft.log;log_max_size— максимальный размер в байтах для файла с логомpangolin_dcs, по умолчанию равен 20мб, минимальное значение 8192 байт;log_rotation_period— интервал ротации файла с логомpangolin_dcs, по умолчанию раз в сутки, формат<число><{одно из: s, m, h, d}>, соответственно: секунда, месяц, час, день;heartbeat_interval— время в миллисекундах, раз в которое мастер DCS-кластера будет сообщать о себе остальным узлам;election_timeout— время в миллисекундах, по прошествии которого при неполучении heartbeat от мастера узел инициирует новое голосование;certfile— серверный сертификат Pangolin DCS для установления SSL-подключений;keyfile— закрытый ключ Pangolin DCS, соответствующий серверному сертификату;keyfile_password— пароль для рассекречивания закрытого ключа (если защищен паролем);cafile— корневой сертификат УЦ (CA);capath— директория, содержащая файлы с доверенными сертификатами УЦ (CA);crlfile— файл со списком отозванных сертификатов (CRL);crlpath— директория, содержащая файлы со списком отозванных сертификатов (CRL);pkcs12_config_path— файл в формате JSON, содержащий данные для запроса сертификата из SecMan или парольную фразу для доступа к контейнеру PKCS#12 и путь к контейнеру;verify_client— определяет, требуется ли запрашивать и проверять клиентский сертификат DCS. Возможные значения:none— клиентский сертификат не запрашивается, проверка сертификата не выполняется;optional— клиентский сертификат запрашивается и, если клиент отправляет сертификат, подвергается проверке;required— клиентский сертификат запрашивается и, если клиент не отправляет сертификат, установка SSL-соединения завершается с ошибкой;
verify_server— определяет, требуется ли запрашивать и проверять серверный сертификат DCS (возможные значения:true/false);no_tls1_3— на серверах с установленным OpenSSL 1.1.0 и выше позволяет переключиться с протокола TLSv1.3 на TLSv1.2 (возможные значения:true/false, по умолчаниюfalse).
При старте кластера с Pangolin Manager с таким конфигурационным файлом, инициализируется Raft-кластер, который между своими узлами передает информацию по защищенному SSL-каналу.
Заполните секции restapi и ssl как указано в примере:
restapi:
# секция заполняется как и раньше для кластера с etcd
listen: 0.0.0.0:8008
connect_address: srv-1-96:8008
allowlist: []
allowlist_include_members: true
pkcs12_config_path: /pg_ssl/intermediate/server.p12.cfg
crlpath: /pg_ssl/crl
crlfile: /pg_ssl/crl/intermediate.crl
authentication:
username: patroniyml
password: $enc$....
pangolin_dcs:
# параметры описанные выше, self_addr и пр.
# параметры для rest api pangolin_dcs
restapi:
listen: 0.0.0.0:8009
connect_address: srv-0-128:8009
allowlist: []
#allowlist_include_members: true
ciphers: DEFAULT:!SSLv1:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1
verify_client: optional
cafile: /pg_ssl/root.crt
capath: /pg_ssl/root_dir
certfile: /pg_ssl/patroni_server.crt
keyfile: /pg_ssl/patroni_server.key
crlpath: /pg_ssl/crl
crlfile: /pg_ssl/crl/intermediate.crl
# параметры для аутентификации на Pangolin DCS через pangolin-manager-ctl
authentication:
username: pangolindcs
password: $enc$....
# параметры для команд к Pangolin DCS через pangolin-manager-ctl и pangolin-dcs-ctl
ctl:
retry_timeout: 10 # тайм-аут на выполнение запроса к Pangolin DCS
Настройка авторизации внутри DCS при включенном SSL и pem-сертификатах#
Выполните настройку авторизации внутри DCS:
Добавьте пользователя
root:curl -iS -XPUT --cert /pg_ssl/client.crt --key /pg_ssl/client.key https://<server_name>:<port>/v2/auth/users/root -d '{"password":"<Пароль root>"}'Добавьте «обычного» пользователя:
curl -iS -XPUT --cert /pg_ssl/client.crt --key /pg_ssl/client.key https://<server_name>:<port>/v2/auth/users/test_user -d '{"password":"<Пароль пользователя>"}'Добавьте роль с правами на чтение и запись:
curl -iS -XPUT --cert /pg_ssl/client.crt --key /pg_ssl/client.key https://<server_name>:<port>/v2/auth/roles/test_role -d '{"permissions": {"kv": {"read": ["/service/clustername/*"], "write": ["/service/clustername/*"]}}}'Назначьте роль «обычному» пользователю:
curl -iS -XPUT --cert /pg_ssl/client.crt --key /pg_ssl/client.key https://<server_name>:<port>/v2/auth/users/test_user -d '{"grant":["test_role"]}'Проверьте статус авторизации (вкл/выкл) — пользователя
root:curl -iS -XGET --cert /pg_ssl/client.crt --key /pg_ssl/client.key -u root:<Пароль root> https://<server_name>:<port>/v2/auth/enableВключите авторизацию:
curl -iS -XPUT --cert /pg_ssl/client.crt --key /pg_ssl/client.key https://<server_name>:<port>/v2/auth/enable
При включенной авторизации все запросы на изменение/просмотр ключей будут доступны только тому пользователю, у которого есть права на это.
Настройка параметров доступа#
В связи с добавлением утилит безопасности (setup_kms_credentials, pg_auth_password, pangolin-certs-rotate) в основной пакет Pangolin Manager, на узле арбитра необходима установка файла лицензии. Утилита pangolin-auth-reencrypt копируется из дистрибутива Pangolin, на узле арбитра производится настройка аналогично узлам с DBMS — создание пользователя безопасности kmadmin_pg и настройка каталогов с утилитами. Ниже приведены каталоги с настроенными правами доступа:
/etc/postgres - drwxrwx--x 2 postgres kmadmin_pg
/opt/pangolin-common - drwx--x--- 3 postgres kmadmin_pg
/opt/pangolin_license - drwxr-x--- 2 postgres kmadmin_pg
/opt/pangolin-manager-2.1.0 - drwx---r-x------ 5 postgres postgres
/opt/pangolin-manager-2.1.0/bin - drwx-----x 3 postgres postgres
/opt/pangolin-manager-2.1.0/lib - drwx---r-x 4 postgres postgres
/opt/pangolin-manager-2.1.0/lib/plugins - drwx---r-x 2 postgres postgres
Состав кластера#
На узле Арбитра находится служба pangolin-manager, работающая в упрощенном режиме и принимающая только запросы, связанные с DCS-модулем. Конфигурационный файл postgres.yml в таком случае выглядит так (без секции postgresql и других значений в секции tags):
scope: clustername
name: srv-0-141
restapi:
# обычное заполнение секции
pangolin_dcs:
self_addr: srv-0-141:2480
partner_addrs: ['srv-0-134:2480', 'srv-0-137:2480']
data_dir: /home/postgres/raft_data_dir
heartbeat_interval: 1000
election_timeout: 5000
bootstrap:
dcs:
# обычное заполнение секции
tags:
nofailover: true # так как здесь нет pangolin, на этот узел нельзя совершить failover
nosync: true # так как этот узел не может стать репликой
Пример файла конфигурации службы pangolin-manager.service:
[Unit]
Description=Runners to orchestrate a high-availability PostgreSQL
After=syslog.target network.target
[Service]
Type=simple
User=postgres
Group=postgres
# Read in configuration file if it exists, otherwise proceed
Environment="PG_LICENSE_PATH=/opt/pangolin_license"
Environment="PG_LD_LIBRARY_PATH=/opt/pangolin-dbms/lib"
Environment="PG_PLUGINS_PATH=/opt/pangolin-dbms/lib"
Environment="PATRONI_PLUGINS_PATH=/opt/pangolin-manager/lib/postgresql_se_libs"
Environment="LD_LIBRARY_PATH=/opt/pangolin-manager/lib/postgresql_se_libs"
Environment="PYTHONPATH=/opt/pangolin-manager/lib/python3/site-packages:/opt/pangolin-manager/lib64/python3/site-packages:/opt/pangolin-manager/lib/python3.6/site-packages:/opt/pangolin-manager/lib64/python3.6/site-packages"
LimitNOFILE=65536
# Pre-commands to start watchdog device
# Uncomment if watchdog is part of your patroni setup
PermissionsStartOnly=true
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/opt/pangolin-manager
ExecStart=/opt/pangolin-manager/bin/pangolin-manager-bin/pangolin-manager.bin /etc/pangolin-manager/postgres.yml
Restart=on-failure
KillMode=process
# Disable restart limits
StartLimitInterval=0
[Install]
CLI-интерфейс для взаимодействия с DCS-кластером#
Для взаимодействия с DCS-кластером используйте утилиту pangolin-dcs-ctl. Описание команд с примерами использования представлено ниже.
Внимание
Команды, изменяющие состояние DCS-кластера (изменение ключа, удаление ключа, удаление всех ключей, восстановление из резервной копии, добавление узлы, удаление узла), доступны только после аутентификации по логину-паролю, которые указаны в секции pangolin_dcs: ctl: в конфигурационном файле postgres.yml. При включенном засекречивании пароль хранится в засекреченном виде. При выполнении команд в интерактивном режиме предлагается ввести пароль и затем пароль проверяется на соответствие с паролем из конфигурационного файла.
Справка для утилиты pangolin-dcs-ctl#
$ pangolin-dcs-ctl --help
Использование: pangolin-dcs-ctl.bin [ОПЦИИ] КОМАНДЫ [АРГУМЕНТЫ]...
Опции:
-c, --config-file TEXT Файл конфигурации
-k, --insecure Разрешить соединения с SSL-сайтами без сертификатов
-u, --user TEXT Имя пользователя[:пароль] для аутентификации (подсказка, если пароль не введен)
--password TEXT Пароль для аутентификации (если эта опция используется, опция '--user' не должна включать пароль)
--plugin-log-level [DEBUG5|LOG|WARNING] Уровень журнала PKCS12
--help Показать это сообщение и выйти.
Команды:
auth Команды для аутентификации
del Удаляет указанный ключ или список ключей
endpoint Команды для проверки состояния кластера
get Получает ключ или список ключей
member Команды для членов кластера
put Помещает указанный ключ в хранилище
role Команды для ролей
snapshot Команды для создания резервных копий
user Команды для пользователей
Команды для настройки аутентификации#
Справка#
$ pangolin-dcs-ctl auth --help
Использование: pangolin-dcs-ctl.bin auth [OPTIONS] COMMAND [ARGS]...
Команды для аутентификации
Опции:
--help Показать это сообщение и выйти.
Команды:
disable Отключает аутентификацию
enable Включает аутентификацию
status Возвращает статус аутентификации
Примеры#
# Получить статус аутентификации.
$ pangolin-dcs-ctl auth status
Authentication Status: false
# Включить аутентификацию. Ошибка: перед включением аутентификации требуется создать пользователя root.
$ pangolin-dcs-ctl auth enable
Error: 400 Bad Request
# Создать пользователя root.
$ pangolin-dcs-ctl user add root
Password of root:
Type password of root again for confirmation:
User root created
# Включить аутентификацию.
$ pangolin-dcs-ctl auth enable
Authentication Enabled
# Выключить аутентификацию без предоставления реквизитов доступа (имя пользователя и пароль).
$ pangolin-dcs-ctl auth disable
Error: Unauthorized
# Выключить аутентификацию с предоставлением реквизитов доступа от пользователя без административных прав.
$ pangolin-dcs-ctl -u user0:pass123 auth disable
Error: 403 Forbidden
# Выключить аутентификацию с предоставлением реквизитов доступа от пользователя с административными правами.
$ pangolin-dcs-ctl -u root:pass123 auth disable
Authentication Disabled
Команды для настройки пользователей#
Справка#
$ pangolin-dcs-ctl user --help
Использование: pangolin-dcs-ctl.bin user [ОПЦИИ] КОМАНДЫ [АРГУМЕНТЫ]...
Команды для пользователей
Опции:
--help Показать это сообщение и выйти.
Команды:
add Добавляет нового пользователя (USER=<имя пользователя или user:password>)
delete Удаляет пользователя
get Получает подробную информацию о пользователе
grant-role Предоставляет роль пользователю
list Перечисляет всех пользователей
passwd Изменяет пароль пользователя
revoke-role Отзывает роль у пользователя
Справка для команды add (добавление нового пользователя)#
$ pangolin-dcs-ctl user add --help
Использование: pangolin-dcs-ctl.bin user add [ОПЦИИ] ПОЛЬЗОВАТЕЛЬ
Добавляет нового пользователя (USER=<имя пользователя или user:password>)
Опции:
--interactive Читать пароль из stdin вместо интерактивного терминала
--new-user-password TEXT Ввод пароля из флага командной строки
--help Показать это сообщение и выйти.
Справка для команды delete (удаление пользователя)#
$ pangolin-dcs-ctl user delete --help
Использование: pangolin-dcs-ctl.bin user delete [ОПЦИИ] ПОЛЬЗОВАТЕЛЬ
Удаляет пользователя
Опции:
--help Показать это сообщение и выйти.
Справка для команды get (получение подробной информации о пользователе)#
$ pangolin-dcs-ctl user get --help
Использование: pangolin-dcs-ctl.bin user get [ОПЦИИ] ПОЛЬЗОВАТЕЛЬ
Получает подробную информацию о пользователе
Опции:
--help Показать это сообщение и выйти.
Справка для команды grant-role (назначение роли пользователю)#
$ pangolin-dcs-ctl user grant-role --help
Использование: pangolin-dcs-ctl.bin user grant-role [ОПЦИИ] РОЛЬ ПОЛЬЗОВАТЕЛЯ
Назначение роль пользователю
Опции:
--help Показать это сообщение и выйти.
Справка для команды list (вывод списка всех пользователей)#
$ pangolin-dcs-ctl user list --help
Использование: pangolin-dcs-ctl.bin user list [ОПЦИИ]
Выводит список всех пользователей
Опции:
--help Показать это сообщение и выйти.
Справка для команды passwd (изменение пароля пользователя)#
$ pangolin-dcs-ctl user passwd --help
Использование: pangolin-dcs-ctl.bin user passwd [ОПЦИИ] ПОЛЬЗОВАТЕЛЬ
Изменение пароля пользователя
Опции:
--interactive Считывать пароль из stdin вместо интерактивного терминала
--help Показать это сообщение и выйти.
Справка для команды revoke-role (отзыв роли у пользователя)#
$ pangolin-dcs-ctl user revoke-role --help
Использование: pangolin-dcs-ctl.bin user revoke-role [ОПЦИИ] РОЛЬ ПОЛЬЗОВАТЕЛЯ
Отзывает роль у пользователя
Опции:
--help Показать это сообщение и выйти.
Примеры#
# Получить список всех пользователей.
$ pangolin-dcs-ctl -u root:pass123 user list
root
user0
# Получить информацию о пользователе user0.
$ pangolin-dcs-ctl -u root:pass123 user get user0
User user0
Roles: role0
# Создать пользователя user1 с интерактивным вводом пароля (по умолчанию).
$ pangolin-dcs-ctl -u root:pass123 user add user1
Password of user1:
Type password of user1 again for confirmation:
User user1 created
# Создать пользователя user2 с вводом пароля из стандартного потока ввода (необходимо передать опцию '--interactive').
$ pangolin-dcs-ctl -u root:pass123 user add user2 --interactive < ./passfile
User user2 created
# Создать пользователя user3 с вводом пароля через опцию '--new-user-password'.
$ pangolin-dcs-ctl -u root:pass123 user add user3 --new-user-password=pass123
User user3 created
# Создать пользователя user4 с вводом пароля через аргумент 'user'.
$ pangolin-dcs-ctl -u root:pass123 user add user4:pass123
User user4 created
# Удалить пользователя user4.
$ pangolin-dcs-ctl -u root:pass123 user delete user4
User user4 deleted
# Удалить пользователя root. Ошибка: запрещено удалять пользователя root при включенной аутентификации.
$ pangolin-dcs-ctl -u root:pass123 user delete root
Error: 403 Forbidden
# Изменить пароль пользователя user3 путем интерактивного ввода (по умолчанию).
$ pangolin-dcs-ctl -u root:pass123 user passwd user3
Password of user3:
Type password of user3 again for confirmation:
Password updated
# Изменить пароль пользователя user3 путем ввода пароля из стандартного потока ввода (необходимо передать опцию '--interactive').
$ echo -n "pass123" | pangolin-dcs-ctl -u root:pass123 user passwd user3 --interactive
Password updated
# Назначить роль role1 пользователю user0.
$ pangolin-dcs-ctl -u root:pass123 user grant-role user0 role1
Role role1 is granted to user user0
# Получить информацию о пользователе user0.
$ pangolin-dcs-ctl -u root:pass123 user get user0
User user0
Roles: role0 role1
# Отозвать роль role1 у пользователя user0.
$ pangolin-dcs-ctl -u root:pass123 user revoke-role user0 role1
Role role1 is revoked from user user0
# Получить информацию о пользователе user0.
$ pangolin-dcs-ctl -u root:pass123 user get user0
User user0
Roles: role0
Команды для настройки ролей#
Справка#
$ pangolin-dcs-ctl role --help
Использование: pangolin-dcs-ctl.bin role [ОПЦИИ] КОМАНДЫ [АРГУМЕНТЫ]...
Команды для ролей
Опции:
--help Показать это сообщение и выйти.
Команды:
add Добавляет новую роль
delete Удаляет роль
get Получает подробную информацию о роли
grant-permission Предоставляет ключ для роли
list Перечисляет все роли
revoke-permission Отзывает ключ у роли
Справка для команды add (добавление новой роли)#
$ pangolin-dcs-ctl role add --help
Использование: pangolin-dcs-ctl.bin role add [ОПЦИИ] РОЛЬ
Добавляет новую роль
Опции:
--help Показать это сообщение и выйти.
Справка для команды delete (удаление роли)#
$ pangolin-dcs-ctl role delete --help
Использование: pangolin-dcs-ctl.bin role delete [ОПЦИИ] РОЛЬ
Удаляет роль
Опции:
--help Показать это сообщение и выйти.
Справка для команды get (получение подробной информации о роли)#
$ pangolin-dcs-ctl role get --help
Использование: pangolin-dcs-ctl.bin role get [OPTIONS] ROLE
Получает подробную информацию о роли
Опции:
--help Показать это сообщение и выйти.
Справка для команды grant-permission (выдача роли ключа)#
$ pangolin-dcs-ctl role grant-permission --help
Использование: pangolin-dcs-ctl.bin role grant-permission [ОПЦИИ] РОЛЬ {read|write|readwrite} [КЛЮЧИ]...
Выдает роли ключ
Параметры:
--prefix Предоставить префиксное разрешение
--help Показать это сообщение и выйти.
Справка для команды list (вывод списка всех ролей)#
$ pangolin-dcs-ctl role list --help
Использование: pangolin-dcs-ctl.bin role list [ОПЦИИ]
Выводит список всех роли
Опции:
--help Показать это сообщение и выйти.
Справка для команды revoke-permission (отзыв ключа у роли)#
$ pangolin-dcs-ctl role revoke-permission --help
Использование: pangolin-dcs-ctl.bin role revoke-permission [ОПЦИИ] РОЛЬ {read|write|readwrite} КЛЮЧ
Отзывает ключ у роли
Опции:
--prefix Отозвать префиксное разрешение
--help Показать это сообщение и выйти.
Примеры#
# Получить список всех ролей.
$ pangolin-dcs-ctl -u root:pass123 role list
role0
role1
root
# Получить информацию о ролях role0 и role1.
$ pangolin-dcs-ctl -u root:pass123 role get role0
Role role0
KV Read:
KV Write:
$ pangolin-dcs-ctl -u root:pass123 role get role1
Role role1
KV Read:
KV Write:
# Создать роль role2.
$ pangolin-dcs-ctl -u root:pass123 role add role2
Role role2 created
# Удалить роль role2.
$ pangolin-dcs-ctl -u root:pass123 role delete role2
Role role2 deleted
# Удалить роль role0. Ошибка: запрещено удалять роль, назначенную пользователю (user0).
$ pangolin-dcs-ctl -u root:pass123 role delete role0
Error: 403 Forbidden
# Создать ключ /foo от имени пользователя user0. Ошибка: у пользователя user0 нет прав на доступ к ключу /foo.
# Внимание:
# Все ключи в KV-хранилище Pangolin DCS начинаются с префикса /service/clustername,
# где /service - путь, с которого Pangolin DCS хранит всю информацию о кластере, clustername - имя кластера.
# При манипуляциях с ключами префикс /service/clustername добавляется автоматически, поэтому указывать его необязательно.
$ pangolin-dcs-ctl -u user0:pass123 put /foo value0
Error: 403 Forbidden
# Назначить роли role0 право на чтение и запись ключа /foo.
# При настройке прав доступа необходимо указывать полный путь до ключа.
$ pangolin-dcs-ctl -u root:pass123 role grant-permission role0 readwrite /service/clustername/foo
Role role0 updated
# Получить информацию о роли role0.
$ pangolin-dcs-ctl -u root:pass123 role get role0
Role role0
KV Read:
/service/clustername/foo
KV Write:
/service/clustername/foo
# Создать ключ /foo от имени пользователя user0.
$ pangolin-dcs-ctl -u user0:pass123 put /foo value0
OK
# Получить значение ключа /foo от имени пользователя user0.
# На первой строке выводится полный путь до ключа, на следующей - его значение.
$ pangolin-dcs-ctl -u user0:pass123 get /foo
/service/clustername/foo
value0
# Создать ключ /foo/bar от имени пользователя user0. Ошибка: у пользователя user0 нет прав на доступ к ключу /foo/bar.
$ pangolin-dcs-ctl -u user0:pass123 put /foo/bar value1
Error: 403 Forbidden
# Назначить роли role1 право на чтение и запись ключей, начиная с префикса /foo/.
# При настройке прав доступа необходимо указывать полный путь до ключа.
$ pangolin-dcs-ctl -u root:pass123 role grant-permission role1 readwrite /service/clustername/foo --prefix
Role role1 updated
# Получить информацию о роли role1.
$ pangolin-dcs-ctl -u root:pass123 role get role1
Role role1
KV Read:
/service/clustername/foo/*
KV Write:
/service/clustername/foo/*
# Назначить роль role1 пользователю user0.
$ pangolin-dcs-ctl -u root:pass123 user grant-role user0 role1
Role role1 is granted to user user0
# Получить информацию о пользователе user0.
$ pangolin-dcs-ctl -u root:pass123 user get user0
User user0
Roles: role0 role1
# Создать ключ /foo/bar от имени пользователя user0.
$ pangolin-dcs-ctl -u user0:pass123 put /foo/bar value1
OK
# Получить значение ключа /foo/bar от имени пользователя user0.
$ pangolin-dcs-ctl -u user0:pass123 get /foo/bar
/service/clustername/foo/bar
value1
# Отозвать роль role1 у пользователя user0.
$ pangolin-dcs-ctl -u root:pass123 user revoke-role user0 role1
Role role1 is revoked from user user0
# Получить информацию о пользователе user0.
$ pangolin-dcs-ctl -u root:pass123 user get user0
User user0
Roles: role0
# Получить значение ключа /foo/bar от имени пользователя user0. Ошибка: у пользователя user0 нет прав на доступ к ключу /foo/bar.
$ pangolin-dcs-ctl -u user0:pass123 get /foo/bar
Error: 403 Forbidden
Команды для операций с KV-хранилищем#
Справка#
Справка для команды get (получение ключа или списка ключей, соответствующих префиксу)#
$ pangolin-dcs-ctl get --help
Использование: pangolin-dcs-ctl.bin get [ОПЦИИ] КЛЮЧ
Получает ключ или список ключей, соответствующих префиксу
Опции:
--count-only Получить только count
-keys-only Получить только ключи
--prefix Получить ключи с соответствующим префиксом
--print-value-only Записывать только значения
--help Показать это сообщение и выйти.
Справка для команды put (помещение заданного ключа в хранилище)#
$ pangolin-dcs-ctl put --help
Использование: pangolin-dcs-ctl.bin put [ОПЦИИ] КЛЮЧ ЗНАЧЕНИЕ
Помещает заданный ключ в хранилище
Опции:
--help Показать это сообщение и выйти.
Справка для команды del (удаляет указанного ключ или списка ключей, соответствующих префиксу)#
$ pangolin-dcs-ctl del --help
Использование: pangolin-dcs-ctl.bin del [OPTIONS] KEY
Удаляет указанный ключ или список ключей, соответствующих префиксу
Опции:
--prefix Удаляет ключи с соответствующим префиксом.
--help Показать это сообщение и выйти.
Команды мониторинга#
Справка#
$ pangolin-dcs-ctl endpoint --help
Использование: pangolin-dcs-ctl.bin endpoint [ОПЦИИ] КОМАНДЫ [АРГУМЕНТТЫ]...
Команды для проверки состояния кластера
Опции:
--help Показать это сообщение и выйти.
Команды:
health Проверяет состояние здоровья конечных точек, указанных в `--endpoints`...
status Выводит статус конечных точек, указанных во флаге `--endpoints`.
Справка для команды status (вывод статуса конечных точек, указанных во флаге –endpoints)#
$ pangolin-dcs-ctl endpoint status --help
Использование: pangolin-dcs-ctl.bin endpoint status [ОПЦИИ]
Выводит статус конечных точек, указанных во флаге `--endpoints`.
Опции:
--endpoints TEXT URL-адреса Pangolin DCS, разделенные запятыми.
--help Показать это сообщение и выйти.
Справка для команды health (проверка работоспособности конечных точек, указанных во флаге –endpoints)#
$ pangolin-dcs-ctl endpoint health --help
Использование: pangolin-dcs-ctl.bin endpoint health [ОПЦИИ]
Проверяет работоспособность конечных точек, указанных во флаге `--endpoints`.
Опции:
--endpoints TEXT URL-адреса Pangolin DCS, разделенные запятыми.
--help Показать это сообщение и выйти.
Примеры#
# Получить статус текущего узла.
$ pangolin-dcs-ctl endpoint status
0.3.10,srv-0-154:2481,leader,srv-0-154:2481,3,connected,connected,connected,0,78,748590,748590,3,3,748591,748591,748591,3,748590,748590,748590,748590,8645
# Получить статус узлов, перечисленных в опции '--endpoints'.
$ pangolin-dcs-ctl endpoint status --endpoints='srv-2-8:8009,srv-0-154:8009,srv-0-148:8009,srv-0-159:8009'
0.3.10,srv-2-8:2481,follower,srv-0-154:2481,3,connected,connected,connected,0,20,748623,748623,3,0,0,748623,8757
0.3.10,srv-0-154:2481,leader,srv-0-154:2481,3,connected,connected,connected,0,18,748623,748623,3,3,748624,748624,748624,3,748623,748623,748623,748623,8753
0.3.10,srv-0-148:2481,follower,srv-0-154:2481,3,connected,connected,connected,0,17,748623,748623,3,0,0,748623,8751
0.3.10,srv-0-159:2481,follower,srv-0-154:2481,3,connected,connected,connected,0,17,748623,748623,3,0,0,748623,8748
# Получить состояние здоровья текущего узла.
$ pangolin-dcs-ctl endpoint health
srv-0-154:2481 is healthy
# Получить состояние здоровья узлов, перечисленных в опции '--endpoints'.
$ pangolin-dcs-ctl endpoint health --endpoints='srv-2-8:8009,srv-0-154:8009,srv-0-148:8009,srv-0-159:8009'
srv-2-8:2481 is healthy
srv-0-154:2481 is healthy
srv-0-148:2481 is healthy
srv-0-159:2481 is healthy
Команды для управления участниками DCS-кластера#
Справка#
$ pangolin-dcs-ctl member --help
Использование: pangolin-dcs-ctl.bin member [ОПЦИИ] КОМАНДЫ [АРГУМЕНТЫ]...
Команды для управления участниками кластера
Опции:
--help Показать это сообщение и выйти.
Команды:
add Добавляет участника в кластер
list Перечисляет всех участников кластера
remove Удаляет участника из кластера
Справка для команды add (добавление участника в кластер)#
$ pangolin-dcs-ctl member add --help
Использование: pangolin-dcs-ctl.bin member add [ОПЦИИ]
Добавляет участника в кластер
Опции:
--peer-urls TEXT URL-адреса пиров для нового участника, разделенные запятыми.
--help Показать это сообщение и выйти.
Справка для команды list (вывод списка всех участников кластера)#
$ pangolin-dcs-ctl member list --help
Использование: pangolin-dcs-ctl.bin member list [ОПЦИИ]
Выводит список всех участников кластера
Опции:
--help Показать это сообщение и выйти.
Справка для команды remove (удаление участника из кластера)#
$ pangolin-dcs-ctl member remove --help
Использование: pangolin-dcs-ctl.bin member remove [ОПЦИИ] URL
Удаляет участника из кластера
Опции:
--help Показать это сообщение и выйти.
Примеры#
# Получить список участников DCS-кластера (лидер srv-0-154:2481).
$ pangolin-dcs-ctl -u root:pass123 member list
srv-0-148:2481, connected, False
srv-0-159:2481, connected, False
srv-0-154:2481, connected, True
# Добавить участника в DCS-кластер.
$ pangolin-dcs-ctl -u root:pass123 member add --peer-urls=srv-2-8:2481
Member srv-2-8:2481 added to cluster
# Получить список участников DCS-кластера.
$ pangolin-dcs-ctl -u root:pass123 member list
srv-2-8:2481, connected, False
srv-0-148:2481, connected, False
srv-0-159:2481, connected, False
srv-0-154:2481, connected, True
# Подключиться по SSH к узлу srv-0-148 и запустить процедуру перевыборов, чтобы стать лидером.
$ pangolin-dcs-ctl -u root:pass123 member promote
A member announces its candidacy in the election
# Получить список участников кластера DCS (лидер srv-0-148:2481).
pangolin-dcs-ctl -u root:pass123 member list
srv-2-8:2481, connected, False
srv-0-154:2481, connected, False
srv-0-159:2481, connected, False
srv-0-148:2481, connected, True
# Удалить из DCS-кластера узел, являющийся лидером. Ошибка: запрещено исключать лидера из состава участников кластера.
$ pangolin-dcs-ctl -u root:pass123 member remove srv-0-148:2481
Error: 500 Internal Server Error
# Удалить из DCS-кластера узел, не являющийся лидером.
$ pangolin-dcs-ctl -u root:pass123 member remove srv-2-8:2481
Member srv-2-8:2481 removed from cluster
# Получить список участников DCS-кластера.
$ pangolin-dcs-ctl -u root:pass123 member list
srv-0-154:2481, connected, False
srv-0-159:2481, connected, False
srv-0-148:2481, connected, True
Команды для резервного копирования#
Справка#
$ pangolin-dcs-ctl snapshot --help
Использование: pangolin-dcs-ctl.bin snapshot [ОПЦИИ] КОМАНДЫ [АРГУМЕНТЫ]...
Команды для резервного копирования
Опции:
--help Показать это сообщение и выйти.
Команды:
save Сохраняет снимок бэкенда узла DCS в заданный файл
Справка команды save (сохранение снимка бэкенда узла DCS в заданном файле)#
$ pangolin-dcs-ctl snapshot save --help
Использование: pangolin-dcs-ctl.bin snapshot save [ОПЦИИ] ИМЯ ФАЙЛА
Сохраняет снимок бэкенда узла DCS в заданном файле.
Опции:
--endpoints TEXT URL Pangolin DCS
--help Показать это сообщение и выйти.
Примеры#
# Выгрузить содержимое KV-хранилища текущего участника DCS-кластера в файл ./snap_1.dump.
$ pangolin-dcs-ctl -u root:pass123 snapshot save ./snap_1.dump
Snapshot saved at ./snap_1.dump
$ ls -l ./snap_1.dump
-rw------- 1 postgres postgres 4721 Mar 26 17:18 ./snap_1.dump
# Выгрузить содержимое KV-хранилища участника с URL srv-0-148:8009 в файл ./snap_2.dump.
$ pangolin-dcs-ctl -u root:pass123 snapshot save ./snap_2.dump --endpoints=srv-0-148:8009
Snapshot saved at ./snap_2.dump
$ ls -l ./snap_2.dump
-rw------- 1 postgres postgres 4728 Mar 26 17:20 ./snap_2.dump
Ошибки и предупреждения DCS#
Ошибки DCS#
Ошибки модуля pangolin_dcs#
В таблице ниже приведены возможные ошибки модуля, которые возникают в лог-файле.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Не удалось изменить/удалить ключ в DCS |
2 |
|
Не удалось изменить/удалить ключ в DCS |
3 |
|
Не удалось изменить/удалить ключ в DCS по причине отсутствия лидера |
4 |
|
Не дождались ответа от DCS при попытке изменить/удалить ключ |
5 |
|
Не дождались ответа от DCS при попытке изменить/удалить ключ, получили код возврата |
6 |
|
Не удалось изменить/удалить ключ |
7 |
|
Не удалось удалить ключ |
8 |
|
Во время работы DCS произошел |
9 |
|
Не удалось сделать запись в лог-файл, подробная ошибка в |
10 |
|
Не удалось применить значение параметра |
11 |
|
установлено слишком маленькое значение для параметра |
12 |
|
Установлено неверное значение параметра |
13 |
|
Не удалось получить информацию об узлах из DCS. Точная ошибка будет указана в |
14 |
|
Не удалось изменить ключ |
15 |
|
Не удалось изменить ключ |
16 |
|
Не удалось изменить ключ |
17 |
|
Не удалось изменить ключ |
18 |
|
Не удалось изменить ключ config в DCS. Точная ошибка будет указана в |
19 |
|
Не удалось изменить ключ |
20 |
|
Не удалось изменить ключ |
21 |
|
Не удалось изменить ключ |
22 |
|
Не удалось изменить ключ |
23 |
|
Не удалось изменить ключ |
24 |
|
Не удалось очистить ключи в DCS. Точная ошибка будет указана в |
25 |
|
Не удалось очистить ключи в DCS. Точная ошибка будет указана в |
Ошибки API Pangolin DCS#
В таблице ниже приведены возможные ошибки API компонента Pangolin DCS.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
В API запросе к DCS не переданы имя пользователя и пароль для проверки доступа |
2 |
|
В API запросе к DCS передано несуществующее имя пользователя |
3 |
|
Не удалось авторизоваться в DCS по переданным имени пользователя и паролю в API запросе |
4 |
|
У пользователя |
5 |
|
Не удалось проверить пользователя |
6 |
|
У пользователя |
7 |
|
Не удалось проверить пользователя |
8 |
|
API запрос к DCS завершился по тайм-ауту |
9 |
|
Переданный в запросе параметр TTL должен быть положительный |
10 |
|
Ключ |
11 |
|
Не удалось включить авторизацию в DCS |
12 |
|
Не удалось выключить авторизацию в DCS |
13 |
|
Не удалось получить информацию о пользователе |
14 |
|
В запросе на создание или изменения пользователя |
15 |
|
Не удалось создать/изменить пользователя |
16 |
|
Не удалось создать/изменить пользователя |
17 |
|
Не удалось создать/изменить пользователя |
18 |
|
Не удалось создать/изменить пользователя |
19 |
|
Созданный/измененный пользователь |
20 |
|
Не удалось удалить пользователя |
21 |
|
Не удалось получить данные о роли |
22 |
|
В запросе на создание или изменения роли |
23 |
|
Не удалось создать/изменить роль |
24 |
|
Не удалось создать/изменить роль |
25 |
|
Не удалось создать/изменить роль |
26 |
|
Созданная/измененная роль |
27 |
|
Не удалось удалить роль |
28 |
|
В запросе на добавление членов кластера не передан параметр |
29 |
|
В запросе на добавление членов кластера параметр адреса |
30 |
|
В запросе на добавление членов кластера переданы адреса |
31 |
|
Не удалось добавить нового члена кластера с адресом |
32 |
|
Не удалось удалить члена кластера с адресом |
33 |
|
Не удалось удалить узел из кластера с адресом |
34 |
|
Не удалось прочитать дамп из файла |
35 |
|
Неверно передан параметр |
36 |
|
Параметр адреса |
37 |
|
Параметр адреса |
38 |
|
Узел с адресом |
Ошибки соединения между узлами#
В таблице ниже приведены возможные ошибки соединения между узлами.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Не удалось проинициализировать SSL соединение. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
2 |
|
Соединение с другим узлом было прервано во время попытки установить SSL handshake. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
3 |
|
Не удалось установить выполнить SSL handshake с другим узлом по адресу HOST:PORT после нескольких попыток. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
4 |
|
Не удалось установить первичное соединение с другим узлом по адресу HOST:PORT. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
5 |
|
Не удалось установить соединение с другим узлом по адресу HOST:PORT. Проверьте доступность соединения между узлами и параметры ссл соединения в конфигурационном файле |
6 |
|
Попытка установить соединение с другим узлом по адресу HOST:PORT превысила тайм-аут. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
7 |
|
Не удалось установить соединение с другим узлом по адресу HOST:PORT. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
8 |
|
Не удалось отправить данные другому узлу по адресу HOST:PORT. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
9 |
|
Не удалось получить никакие данные от другого узла по адресу HOST:PORT. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
10 |
|
Не удалось выполнить разбор сообщения, полученного от другого узла по адресу HOST:PORT. Проверьте доступность соединения между узлами и параметры SSL соединения в конфигурационном файле |
11 |
|
Не удалось получить серийный номер сертификата из файла PKCS#12 по пути PATH_TO_FILE. Проверьте сертификат и параметры SSL в конфигурационном файле |
12 |
|
Не удалось получить серийный номер сертификата из файла по пути |
13 |
|
Не указаны параметры pkcs12_config_path или certfile в конфигурационном файле в секции DCS |
14 |
|
Не удалось получить время последней модификации файла по пути PATH_TO_FILE, так как по указанному пути нет папки или файла |
15 |
|
Не удалось проинициализировать SSL соединение, используя PKCS#12 сертификат. Проверьте сертификат и параметры SSL в конфигурационном файле |
16 |
|
Не удалось проинициализировать SSL соединение, используя PEM сертификат по пути. Проверьте сертификат и параметры SSL в конфигурационном файле |
Ошибки сериализации дампа#
В таблице ниже приведены возможные ошибки сериализации дампа.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Не удалось получить статус дочернего процесса, осуществляющего запись дампа на диск |
2 |
|
Произошла ошибка при записи дампа на диск в файл по пути |
3 |
|
Не удалось открыть файл дампа на диске для чтения. Проверьте доступность пути |
4 |
|
Произошла ошибка при чтении файла дампа с диска. Проверьте доступность пути |
5 |
|
Не удалось создать/открыть временный файл для записи по пути |
6 |
|
Не удалось записать данные в ранее открытый временный файл по пути |
7 |
|
Не удалось переместить данные из временного файла |
Ошибки изменения конфигурационного файла#
В таблице ниже приведены возможные ошибки изменения конфигурационного файла.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Параметры в секции |
Ошибки журнала операций#
В таблице ниже приведены возможные ошибки журнала операций.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Не удалось получить статус дочернего процесса, осуществляющего запись журнала операций на диск. Проверьте доступность пути |
2 |
|
Не удалось выполнить запись в файл журнала операций на диске по пути |
3 |
|
Не удалось получить статус дочернего процесса, осуществляющего чтение журнала операций с диска. Проверьте доступность пути |
4 |
|
Не удалось обработать прочитанные данные из файла журнала операций по пути |
5 |
|
Не удалось выполнить чтение из файла журнала операций на диске по пути |
6 |
|
Не удалось получить статус дочернего процесса, осуществляющего чтение файла с мета-данными журнала операций по пути |
7 |
|
Не удалось получить данные от дочернего процесса, прочитавшего файл с мета-данными по пути |
8 |
|
Не удалось прочитать файл с мета-данными по пути |
9 |
|
Не удалось получить статус дочернего процесса, осуществляющего запись в файл с мета-данными журнала операций по пути |
10 |
|
Не удалось выполнить запись мета-данных в файл по пути |
Ошибки основного модуля RAFT#
В таблице ниже приведены возможные ошибки основного модуля RAFT.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Не удалось проинициализировать файл для записи журнала операций. Проверьте доступность пути |
2 |
|
Не удалось проинициализировать соединения с другими узлами на старте этого узла. Проверьте соединение между узлами |
3 |
|
Не удалось проверить доступность файла для записи журнала операций. Проверьте доступность пути |
4 |
|
Ошибка при применении операции |
5 |
|
Не удалось проверить доступность файла дампа для записи дампа. Проверьте доступность пути |
6 |
|
Не удалось прочитать дамп из файла. Проверьте доступность пути |
7 |
|
Не удалось прочитать дамп из файла. Проверьте доступность пути |
Предупреждения DCS#
Предупреждения API Pangolin DCS#
В таблице ниже приведены возможные предупреждения API компонента Pangolin DCS.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Последняя попытка записи журнала на диск была успешна, производится переключения на файловый журнал операций |
Предупреждения основного модуля RAFT#
В таблице ниже приведены возможные предупреждения основного модуля RAFT.
N |
Сообщение в логе |
Расшифровка сообщения |
|---|---|---|
1 |
|
Не удалось записать в журнал операций на диске, последние операции хранятся в памяти. Проверьте доступность пути |
2 |
|
Выполняется понижение роли с лидера до ведомого в DCS кластере, так как не удается записывать операции на диск. Проверьте доступность пути |
3 |
|
Выполняется понижение роли с лидера до ведомого в DCS кластере, так как не удается записывать операции на диск. Проверьте доступность пути |
4 |
|
Был начат, но не завершен дочерний процесс записи журнала операций на диск. Проверьте доступность пути |
5 |
|
Не удалось завершить запись последних операций на диск за |
6 |
|
Переключение на хранение операций в памяти. Проверьте доступность пути |
7 |
|
Не удалось записать в файл дампа на диске, дамп содержится в памяти. Проверьте доступность пути |
8 |
|
Последняя попытка записи дампа на диск была успешна, производится переключения на файловый дамп. Проверьте доступность пути |
9 |
|
Был начат, но не завершен дочерний процесс записи дампа на диск. Проверьте доступность пути |
10 |
|
Дочерний процесс записи дампа на диск по какой-то причине не стартовал. Проверьте доступность пути |
11 |
|
Не удалось запись дам на диск, дамп будет храниться в памяти. Проверьте доступность пути |
12 |
|
Не удалось завершить запись дампа на диск за |
13 |
|
Не удалось выполнить ротацию лог файла DCS, файла не существует |
14 |
|
Параметр |
15 |
|
Установлено значение |
16 |
|
Установлено значение меньше |