Содержание
- Схема
- Описание
- Условия эксплуатации
- Технические требования
- 1. Установка и настройка сервиса хранения glusterfs
- 2. Подготовка к установке почтового сервера (*опционально)
- 3. Установка и настройка базы данных (БД)
- 4. Установка Корпоративного сервера
- 5. Выполните дополнительную настройку Nginx и Сервер документов
- 6. Настройка подключения почтового сервера (*опционально)
- 7. Управление переключением БД при неработоспособности первого сервера
- 8. Резервное копирование и восстановление
Для установки потребуется wildcard сертификат, содержащий полную цепочку (fullchain)
Например:
----BEGIN CERTIFICATE----- (Your Primary SSL certificate: your_domain_name.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Intermediate certificate: DigiCertCA.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Root certificate: TrustedRoot.crt) -----END CERTIFICATE-----
Где:
Основной Certificate — your_domain_name.crt
Промежуточный Certificate — DigiCertCA.crt
Корневой Certificate — TrustedRoot.crt
Схема

Описание
Архитектура рассчитана на использование одного сервера как основной и второго сервера как запасной с постоянной репликацией. В случае отказа работы основного возможность ручного переключения на запасного с помощью скрипта и изменении IP-адреса указывающего на основную ноду.
В архитектуре используются следующие компоненты и входят в состав стандартной установки Корпоративного сервера 2024:
- PostgreSQL 15.6;
- Rabbitmq-server 3.10;
- Redis server 7.0;
- glusterfs 10.3.
Проверка осуществлялась на версии 2026.3.6.17475 Корпоративного сервера 2024 и Сервера документов 2025.4.1-1604.
Условия эксплуатации
1. При использовании одной доменной А записи с несколькими IP-адресами (с возможностью включения и выключения IP) или изменение доменной записи для Корпоративного сервера вида *.domain.ru, например: *.test2.s7-office.site, и отдельными записями для двух почтовых серверов (*опционально).
2. В случае если почтовый сервер не нужен, то возможна установка без почтового сервера. Предварительно ознакомьтесь с инструкцией чтобы исключить почтовый сервер из установки.
Команды связанные с почтовым сервером отмечены в данной статье.
3. При ошибках работы приложений на сервере master потребуется переключение сервера slave в режим master с помощью скрипта.
Технические требования
- 2 Виртуальные машины;
- Для хранения данных glusterfs;
- ТХ Машин, для тестирования, возможно использовать:
От 4 CPU;
От 8Гб RAM;
От 50Гб свободного пространства на диске; - Более конкретные данные рассчитываются по обращению в ТП;
- Отключение или перевод selinux в режим permissive для корректной работы сервисов.
1. Установка и настройка сервиса хранения glusterfs
1.1. Описание
Файловое хранилище:
- Для Почтового сервера будет использоваться каталог:
/mail - Для Корпоративного сервера 2024:
/var/r7-office/filestorage/var/r7-office/searchindex/opt/r7-office/java-maker/uploaded-files
- Для Сервера документов:
/var/www/r7-office/Data/var/lib/r7-office/documentserver/App_Data/cache
Нет необходимости синхронизировать временные каталоги:
filestorage_temp filestorage_temp_proc
База данных (БД):
Используется PostgreSQL версии 11 или более новая в режиме master-slave.
1.2. Установка и настройка glusterfs
Добавьте запись в /etc/hosts:
192.168.27.186 gluster1 192.168.26.253 gluster2
Рекомендуется использовать запись 127.0.0.1 localhost как стандартную и без использования имени сервера, так как в дальнейшем будут добавлены другие записи для работы почтового сервера.
Укажите соответствующее имя (поправить на свой домен и IP-адрес сервера), вместо mx1 можно использовать любое необходимое имя, например: mail:
На сервере №1
hostnamectl set-hostname mx1.your-domain.ru
Hostname сервера не совпадает с его доменом. Например, server.example.com — полное имя домена, а server — его hostname. Данная запись необходима для почтового сервера.
Без использования почтового сервера возможно задать любое имя сервера.
Укажите соответствующее имя на сервере №2 для почтового сервера (поправить на свой домен):
На сервере №2
hostnamectl set-hostname mx2.your-domain.ru
Добавьте запись в /etc/hosts:
192.168.27.186 mx1.your-domain.ru 192.168.26.253 mx2.your-domain.ru
Укажите имя и IP ваших серверов.
Для корректной установки корпоративного сервера требуется наличие перевода строки в конце файла /etc/hosts.
Для применения параметров выполните перезапуск серверов.
Без использования почтового сервера возможно задать любое имя сервера.
1.3. На всех нодах установить, запустить и добавить в автозагрузку
apt install -y glusterfs-server systemctl start glusterd.service systemctl enable glusterd.service
Не имеет значения, какой из узлов вы будете использовать, но в следующем примере команда запускается на gluster1:
gluster peer probe gluster2
Фактически эта команда сообщает gluster1 доверять gluster2 и регистрирует его как часть пула хранения данных.
Если зондирование пройдет успешно, вы получите следующий вывод:
peer probe: success
Вы можете проверить связь узлов в любое время путем запуска команды:
gluster peer status
Если вы запустите эту команду из gluster2, вы увидите следующий вывод:
Number of Peers: 1 Hostname: gluster1 Uuid: 7ecfa2d1-3394-4f15-a1f5-bba484f2bbef State: Peer in Cluster (Connected)
Рекомендуется на время установки/настройки отключить firewalld.
На этом этапе два ваших сервера взаимодействуют и готовы к созданию томов хранения друг с другом.
Создание томов
Выполняется на первом сервере.
Для создания тома вы будете использовать команду gluster volume create с таким общим синтаксисом:
#для почтового сервера
sudo gluster volume create mail_volume replica 2 gluster{1,2}:/mail_volume force
#для корпоративного сервера
sudo gluster volume create cddisk-filestorage replica 2 gluster{1,2}:/cddisk-filestorage force
sudo gluster volume create cddisk-searchindex replica 2 gluster{1,2}:/cddisk-searchindex force
sudo gluster volume create ds-data replica 2 gluster{1,2}:/ds-data force
sudo gluster volume create ds-cache replica 2 gluster{1,2}:/ds-cache force
sudo gluster volume create cddisk-javamaker replica 2 gluster{1,2}:/cddisk-javamaker forceЕсли том был создан успешно, вы увидите следующий вывод:
volume create: mail_volume: success: please start the volume to access data
На этом этапе ваш том создан, но еще не активирован. Вы можете запустить том и сделать его доступным для использования путем выполнения следующей команды с любого сервера Gluster:
#для почтового сервера sudo gluster volume start mail_volume #для корпоративного сервера sudo gluster volume start cddisk-filestorage sudo gluster volume start cddisk-searchindex sudo gluster volume start ds-data sudo gluster volume start ds-cache sudo gluster volume start cddisk-javamaker
Вы получите следующий вывод, если том запущен корректно:
volume start: mail_volume: success volume start: cddisk-filestorage: success volume start: cddisk-searchindex: success volume start: ds-data: success volume start: ds-cache: success volume start: cddisk-javamaker: success
Затем проверьте, находится ли том в сети. Запустите следующую команду с любого из ваших узлов:
sudo gluster volume status
В результате вы увидите вывод, аналогичный данному:
Status of volume: mail Gluster process TCP Port RDMA Port Online Pid ------------------------------------------------------------------------------ Brick gluster1:/mail 49152 0 Y 4495 Brick gluster2:/mail 49152 0 Y 20192 Self-heal Daemon on localhost N/A N/A Y 4518 Self-heal Daemon on gluster2 N/A N/A Y 20215 Task Status of Volume mail_volume ------------------------------------------------------------------------------ There are no active volume tasks
Создайте каталог и смонтируйте
Инструкция ниже выполняется на всех серверах.
#для почтового сервера mkdir /mail #для корпоративного сервера mkdir -p /var/r7-office/filestorage mkdir -p /var/r7-office/searchindex mkdir -p /var/www/r7-office/Data mkdir -p /var/lib/r7-office/documentserver/App_Data/cache mkdir -p /opt/r7-office/java-maker/uploaded-files #для почтового сервера mount.glusterfs localhost:/mail_volume /mail #для корпоративного сервера mount.glusterfs localhost:/cddisk-filestorage /var/r7-office/filestorage mount.glusterfs localhost:/cddisk-searchindex /var/r7-office/searchindex mount.glusterfs localhost:/ds-data /var/www/r7-office/Data mount.glusterfs localhost:/ds-cache /var/lib/r7-office/documentserver/App_Data/cache mount.glusterfs localhost:/cddisk-javamaker /opt/r7-office/java-maker/uploaded-files
Добавьте в автозагрузку:
#для почтового сервера
{
echo 'localhost:/mail_volume /mail glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/cddisk-filestorage /var/r7-office/filestorage glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/cddisk-searchindex /var/r7-office/searchindex glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/ds-data /var/www/r7-office/Data glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/ds-cache /var/lib/r7-office/documentserver/App_Data/cache glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
echo 'localhost:/cddisk-javamaker /opt/r7-office/java-maker/uploaded-files glusterfs defaults,_netdev,backupvolfile-server=localhost 0 0'
} | sudo tee -a /etc/fstabДобавьте задание для перезапуска glusterfs, в случае перезагрузки или выключения питания:
Инструкция ниже выполняется на всех серверах.
После перезагрузки сервера, могут наблюдаться проблемы с синхронизацией glusterfs. Поэтому данный метод решает эту проблему:
echo "@reboot sleep 30 && systemctl restart glusterd.service" | crontab -
Проверка монтирования:
df -h mount -a
Проверьте корректность синхронизации каталогов между серверами, создавая тестовые файлы или каталоги в монтированных каталогах.
При настройке разрешенных портов рекомендуется проверить все задействованные порты на двух серверах:
ss -tulnp | grep gluster
2. Подготовка к установке почтового сервера (*опционально)
2.1. Записи в DNS и необходимые конфигурации
Для почтового сервера необходимо сделать A и MX записи в виде:
MX записи:
mx1 - 192.168.27.186 mx2 - 192.168.26.253
А записи:
smtp - 192.168.27.186, 192.168.26.253 imap - 192.168.27.186, 192.168.26.253
Примеры А записей:

А также TXT запись:
v=spf1 +mx ~all
TXT v=spf1 +a +mx -all говорит о том, что отправлять письма от имени домена your-domain.ru могут сервера, указанные в A и MX-записях этого домена, а письма, отправленные от других серверов должны быть удалены (Fail). Важно понимать: SPF-запись не наследуется на поддомены.
Для корректной смены ролей master и slave требуется переключить IP-адреса в настройках DNS (отключить адрес slave-узла и включить адрес master-узла).
3. Установка и настройка базы данных (БД)
Установите следующие пакеты на оба сервера:
sudo apt update && sudo apt install postgresql -y
3.1. База данных (БД)
Инструкция ниже выполняется на всех серверах.
Отредактируйте postgresql.conf:
sudo nano /etc/postgresql/14/main/postgresql.conf
В зависимости от версии установленной postgresql сервера, путь к конфигурационному файлу может отличаться. Все действия описываются для 11 версии.
В файле postgresql.conf разрешите логическую репликацию. Для этого отредактируйте /etc/postgresql/11/main/postgresql.conf:
listen_addresses = 'localhost,ip_srv,ip_srv2' # Слушать на адресах port = 5432 # Задать порт БД wal_level = replica # Включить репликацию archive_mode = on # Включить архивирование WAL archive_command = 'cp %p /var/lib/postgresql/14/main/archive/%f' # Команда для архивирования WAL, в зависимости от версии установленной postgresql сервера, путь к файлу может отличаться max_wal_senders = 5 # Максимальное количество одновременных подключений репликации max_replication_slots = 5 # Количество слотов для репликации hot_standby = on # Разрешить подключения в режиме hot standby hot_standby_feedback = on # Определяет, будет или нет сервер slave сообщать мастеру о запросах, которые он выполняет.
Где:
ip_srv1, ip_srv2 — адреса внутренней сети первого и второго почтового сервера.
Настройте аутентификацию пользователей в базе данных. Приведите к следующему виду файл /etc/postgresql/11/main/pg_hba.conf:
# Разрешить локальные подключения для всех пользователей # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust host all all ip_srv1/32 trust host all all ip_srv2/32 trust
Вместо ip_srv1/32 и ip_srv2/32 укажите IP-адрес двух серверов. Режим trust необходим для установки Корпоративного сервера.
И добавьте строки в конце для возможности репликации БД:
# Разрешить репликацию с обоих серверов для пользователя replication_user host replication replication_user ip_srv1/32 md5 host replication replication_user ip_srv2/32 md5
Где:
ip_srv1/32иip_srv2/32— адреса первого или второго почтового сервера, в зависимости от сервера, где производится настройка.
Выполните перезапуск сервиса БД:
sudo systemctl restart postgresql
Инструкция ниже выполняется на сервере №1.
После базовой настройки базы данных, создаем необходимую структуру в БД, создаем пользователей и настраиваем репликацию:
sudo -u postgres psql
В консоли psql> выполните следующие команды (вместо паролей password и replication_password, cddisk и ds задайте свои пароли), подтверждая каждую нажатием Enter:
Не рекомендуется использовать другие имена для баз данных cddisk и ds.
CREATE USER cddisk WITH password 'cddisk'; CREATE USER ds WITH password 'ds'; CREATE DATABASE cddisk OWNER cddisk; CREATE DATABASE ds OWNER ds; CREATE DATABASE pagesdb OWNER cddisk; GRANT ALL privileges ON DATABASE cddisk TO cddisk; GRANT ALL privileges ON DATABASE ds TO ds; GRANT ALL privileges ON DATABASE pagesdb TO cddisk; CREATE USER replication_user WITH REPLICATION LOGIN PASSWORD 'replication_password'; GRANT CONNECT ON DATABASE cddisk TO replication_user; GRANT CONNECT ON DATABASE ds TO replication_user; \c cddisk GRANT USAGE ON SCHEMA public TO replication_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO replication_user; GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO replication_user; \c ds GRANT USAGE ON SCHEMA public TO replication_user; GRANT SELECT ON ALL TABLES IN SCHEMA public TO replication_user; GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO replication_user; Для выхода из БД \q
Инструкция ниже выполняется на сервере №1.
Создайте директорию для архива:
#в зависимости от версии установленной postgresql сервера, путь к каталогу может отличаться sudo mkdir -p /var/lib/postgresql/11/main/archive sudo chown -R postgres:postgres /var/lib/postgresql/11/main/archive sudo chmod -R 750 /var/lib/postgresql/11/main/archive
Инструкция ниже выполняется на сервере №1.
Перезагрузите службу PostgreSQL для применения изменений:
systemctl restart postgresql*
3.2. Настройка репликации БД
Инструкция ниже выполняется на сервере №2.
Удалите существующую директорию данных:
#в зависимости от версии установленной postgresql сервера, путь к каталогу может отличаться rm -rf /var/lib/postgresql/11/main
Создайте базовую резервную копию с мастера:
#в зависимости от версии установленной postgresql сервера, путь pgdata=/var/lib/postgresql/11/main может отличаться su - postgres -c "pg_basebackup --host=ip_srv1 --username=replication_user --pgdata=/var/lib/postgresql/11/main --wal-method=stream --write-recovery-conf"
Где:
ip_srv1 — адрес внутренней сети первого сервера, с master БД.
Перезапустите сервис и проверьте его статус:
systemctl restart postgresql* systemctl status postgresql*
4. Установка Корпоративного сервера
Выполнение установки по инструкции Установка Корпоративный сервер 2024 на ОС Астра Линукс ↗.
4.1. Предварительная подготовка
Скачайте дистрибутив.
Для корректной установки, разместите архив в директории, отличной от /root, например в /mnt или /tmp.
Нашу настройку двухнодовой архитектуры необходимо начать с установки на втором сервере, чтобы избежать последующих ошибок с серверами.
Перейдите в каталог:
cd /mnt
Распакуйте архив:
unzip CDinstall_*.zip
Перейдите в каталог CDDiskPack/CDinstall/:
cd CDDiskPack/CDinstall/
Для корректной работы Корпоративного сервера 2024 обязательно требуется настройка HTTPS. Перед установкой скопируйте crt и key файлы в папку sslcert.
Предоставьте права на скрипт установки:
chmod +x online_installer.sh
Создайте DNS запись для Корпоративного сервера, например:

Если Offline установка
chmod +x offline_installer.sh
Для offline установки требуется установить пакеты в систему и подключить ISO-образ установочного диска операционный системы в папку distr.
Скачать пакеты можно по данной ссылке ↗.
Архив cddisk.zip содержит необходимые пакеты для Корпоративного сервера 2024.
1. Установить wget;
2. Скачать архив cddisk.zip, распаковать и установить пакеты командой.
sh install.sh.
В папку ./distr положите ISO-образ установочного диска операционный системы. Файл должен быть с расширением .iso. Данный образ вы можете скачать с официального сайта производителя.
4.2. Запуск установки второго сервера
Инструкция ниже выполняется на сервере №2.
Если установка online
Выполните команду:
./online_installer.sh
Если установка offline
Убедитесь, что все репозитории отключены, чтобы установка пакетов происходила исключительно из offline архива. Для этого удалите или закомментируйте (добавив символ # в начало строки) все строки в файле /etc/apt/sources.list, а также очистите содержимое папки /etc/apt/sources.list.d.
После этого запустите установку:
./offline_installer.sh
Выберите Нет, иначе произойдет удаление PostgreSQL:

Выберите Нет:

Выберите Да:

Задайте secret. Необходимо ввести секрет (Набор цифр, букв и спецсимволов. Длина от 8 символов) для защищённого доступа Р7-Диска и Сервера документов:

Укажите пароль к БД ds, ранее созданный в пункте 3.1 (из примера: ds):

Выберите Да:

Выберите PostgreSQL:

Выберите Нет:

Укажите БД master и IP-адрес текущего первого сервера:

Укажите по умолчанию порт 5432:

Укажите БД cddisk из пункта 3.1 (из примера: cddisk):

Укажите системного пользователя postgres:

Укажите пользователя cddisk:

Укажите пароль к БД cddisk из пункта 3.1 (из примера: cddisk):

Укажите пароль к пользователю cddisk из пункта 3.1 (из примера: cddisk):

Измените на актуальный, если есть Корпоративный сервер 2019 и нажмите ОК:

Выберите Да:

Необходимо указать домен, в котором у вас созданы записи из пункта подготовки:

Далее укажите необходимые префиксы для всех модулей.
Выберите Да (если требуется установка почтового сервера):

Дальнейшие действия нужно выполнять только при установке Корпоративного сервера 2024 с Почтовым сервером, иначе перезагрузите сервер.
Выберите PostgreSQL:

Необходимо указать имя сервера:

Укажите IP-адрес сервера:

Укажите пароль для пользователя postfix:

Если требуется установка SpamAssassin:
- Выберите 1.
Если не требуется установка SpamAssassin:
- Выберите 2:

Если требуется установка:
- Выберите Да.
Если не требуется установка:
- Выберите Нет:

После инсталляции в консоли будет предложено сделать TXT-запись:

Перезапустите сервер.
4.3. Установка первого сервера
Перед установкой Корпоративного сервера №1 необходимо пересоздать базу данных, чтобы избежать дублирования информации:
Инструкция ниже выполняется на сервере №2.
supervisorctl stop all systemctl stop java-maker.service
Инструкция ниже выполняется на сервере №1 (master).
DROP DATABASE IF EXISTS cddisk; DROP DATABASE IF EXISTS pagesdb;
Далее мы создадим базу данных заново на мастере из пункта 3.1.
Скачайте дистрибутив.
Для корректной установки, разместите архив в директории, отличной от /root, например в /mnt или /tmp.
Перейдите в каталог:
cd /mnt
Распакуйте архив:
unzip CDinstall_*.zip
Для корректной работы Корпоративного сервера 2024 обязательно требуется настройка HTTPS. Перед установкой скопируйте crt и key файлы в папку sslcert.
Перейдите в каталог CDDiskPack/CDinstall/:
cd CDDiskPack/CDinstall/
Предоставьте права на скрипт установки:
chmod +x online_installer.sh
Если Offline установка
chmod +x offline_installer.sh
Для offline установки требуется установить пакеты в систему и подключить ISO-образ установочного диска операционный системы в папку distr.
Скачать пакеты можно по данной ссылке ↗.
Архив cddisk.zip содержит необходимые пакеты для Корпоративного сервера 2024.
1. Установить wget;
2. Скачать архив cddisk.zip, распаковать и установить пакеты командой.
sh install.sh.
В папку ./distr положите ISO-образ установочного диска операционный системы. Файл должен быть с расширением .iso. Данный образ вы можете скачать с официального сайта производителя.
4.4. Запуск установки
Если установка online
Выполните команду:
./online_installer.sh
Если установка offline
Убедитесь, что все репозитории отключены, чтобы установка пакетов происходила исключительно из offline архива. Для этого удалите или закомментируйте (добавив символ # в начало строки) все строки в файле /etc/apt/sources.list, а также очистите содержимое папки /etc/apt/sources.list.d.
После этого запустите установку:
./offline_installer.sh
Выберите Нет:

Выберите Нет:

Выберите Да:

Укажите такой же secret как для второго сервера:

Укажите пароль к БД ds из пункта 3.1 (из примера ds):

Выберите Да:

Выберите PostgreSQL:

Выберите Нет:

Укажите IP-адрес первого сервера master:

Укажите порт 5432:

Укажите имя БД cddisk:

Укажите пользователя postgres:

Укажите пользователя cddisk для БД cddisk:

Укажите БД cddisk из пункта 3.1 (из примера: cddisk):

Укажите пароль к БД cddisk из пункта 3.1 (из примера: cddisk):

Укажите пароль от пользователя cddisk из пункта 3.1 (из примера: cddisk):

Измените на актуальный, если есть Корпоративный сервер 2019 и нажмите ОК:

Выберите Да:

Необходимо указать домен, в котором у вас созданы записи из пункта подготовки:

Далее укажите необходимые префиксы для всех модулей, одинаковые со вторым сервером.
Выберите Да (если требуется установка почтового сервера):

Дальнейшие действия нужно выполнять только при установке Корпоративного сервера 2024 с Почтовым сервером, иначе перезагрузите сервер.
Выберите PostgreSQL:

Необходимо указать имя для первого сервера:

Укажите IP-адрес сервера:

Укажите пароль для пользователя postfix (нужно указать такой же пароль, как на втором сервере):

Если требуется установка SpamAssassin (выберите тот же вариант, который указали при установке второго сервера):
- Выберите 1.
Если не требуется установка SpamAssassin:
- Выберите 2:

Если требуется установка (выберите тот же вариант, которые указали при установке второго сервера):
- Выберите Да.
Если не требуется установка:
- Выберите Нет:

После инсталляции в консоли будет предложено сделать TXT запись:

Перезапустите сервер.
5. Выполните дополнительную настройку Nginx и Сервер документов
Выведите значение параметра secure_link_secret на первом сервере:
grep -rn "set \$secure_link_secret" /etc/r7-office/documentserver/nginx/ds.conf
Пример вывода:
13: set $secure_link_secret kCj7RMAAYCNtOh6KiGin;
Для второго сервера:
sudo sed -i "s/set \$secure_link_secret [^;]*/set \$secure_link_secret НОВОЕ_ЗНАЧЕНИЕ/" $(grep -rl "set \$secure_link_secret" /etc/r7-office/documentserver/) sudo sed -i -E "s/\"secretString\": .+/\"secretString\": \"НОВОЕ_ЗНАЧЕНИЕ\"/" $(grep -rl "secretString" /etc/r7-office/documentserver/)
Где, замените НОВОЕ_ЗНАЧЕНИЕ на необходимый параметр c вывода предыдущей команды (пример, kCj7RMAAYCNtOh6KiGin).
Измените в /etc/r7-office/documentserver/local.json строку:
"dbHost": "localhost"
Где потребуется заменить localhost на адрес текущего мастера (первого сервера), из примера 192.168.27.135.
Выполните команды по перезапуску Nginx и Сервера документов:
systemctl restart nginx ds-converter.service ds-docservice.service ds-metrics.service
6. Настройка подключения почтового сервера (*опционально)
Перейдите в https://admin.test2.s7-office.site/ Организации — Выберите организацию, в которую добавлены пользователи — Почтовые серверы:

Укажите ранее добавленные данные по почтовому серверу:

Скопируйте папку /home/mail_cddisk/.ssh из первого сервера во второй сервер.
Выполните на втором сервере:
chown -R mail_cddisk:mail_cddisk /home/mail_cddisk/.ssh
7. Управление переключением БД при неработоспособности первого сервера
7.1. Создайте скрипт управления и файл переменных
Готовый скрипт можно скачать по данной ссылке: change.sh ↗
Укажите необходимые константы в файле переменных. Потребуется указать необходимые параметры, что является master (первый сервер) и slave (второй сервер).
Параметры указанные ранее в пункте 3.1
Константы для подключения к БД:
MASTER_IP="192.168.27.186"— укажите адрес master БДSLAVE_IP="192.168.26.253"— укажите адрес replica БДMASTER_MAIL_FQDN="mx1.stend12.s7-office.site"— укажите FQDN имя почтового сервера на masterREPLICATION_USER="replication_user"— укажите пользователя для репликацииREPLICATION_PASS="replication_password"— пароль от пользователя для репликацииLOG_FILE="/var/log/switch_postgres.log"— расположение файла логирования скрипта
Константы для cddisk (appsettings.json):
CDDISK_DB_NAME="cddisk"— не рекомендуется изменятьCDDISK_DB_USER="cddisk"— укажите пользователя КСCDDISK_DB_PASS="cddisk"— укажите пароль для пользователя КСCDDISK_DB_PORT="5432"— укажите порт БД
Константы для documentserver (local.json):
DS_DB_NAME="ds"— не рекомендуется изменятьDS_DB_USER="ds"— укажите пользователя ДСDS_DB_PASS="ds"— укажите пароль для пользователя ДСDS_DB_PORT="5432"— укажите порт БД
Константы для почтового сервера (postfix, dovecot):
MAIL_DB_NAME="postfix"— не рекомендуется изменятьMAIL_DB_USER="postfix"— укажите пользователя PostfixMAIL_DB_PASS="postfix"— укажите пароль пользователя PostfixMAIL_DB_PORT="5432"— укажите порт БД
Константы для java-maker (external.properties):
JAVA_DB_NAME="pagesdb"— не рекомендуется изменятьJAVA_DB_PORT="5432"— укажите порт БД
Описание пунктов:
- Установка параметров master — устанавливает параметры master для сервера используемого основным (меняет конфигурации приложений на использование БД master) и создает в том же каталоге резервную копию изменяемых файлов;
- Установка параметров slave — устанавливает параметры slave для сервера используемым запасным (меняет конфигурации приложений на использование БД master и включение репликации на этом сервере) и создает в том же каталоге резервную копию изменяемых файлов;
- Показать текущие конфиги — показывает текущие параметры приложений;
- Проверка подключения с новыми параметрами — проверяет доступ для приложений с заданными константами по подключению к master;
- Восстановить конфигурации из .bak — при ранее измененных конфигураций приложений может восстановить резервные копии файлов из формата .bak;
- Перезапустить сервисы приложений — перезапускает сервисы приложений ранее измененных конфигураций приложений может восстановить резервные копии файлов из формата .bak;
- Показать текущий статус сервера — указывает состояние БД на текущем сервере;
- Остановка сервисов корпоративного сервера (холодный резерв)» — останавливает сервисы корпоративного сервера для режима «холодный резерв»;
7.2. Настройка второго сервера
Укажите в скрипте текущее представление серверов (master и slave) в константах скрипта (и проверьте другие параметры с корректными данными) и запустите скрипт на втором сервере (slave) пункт меню «Установка параметров slave».
7.3. Проверка работы серверов
Для проверки потребуется переключать в DNS А запись ведущая на первый сервер. Перейдите по адресу https://admin.test2.s7-office.site, убедитесь что используется корректная адресация на первый адрес Корпоративного сервера 2024 (используйте команду ping) и используйте предустановленный логин\пароль superadmin. Создайте пользователя и проверьте редактирование файлов — корректное сохранение файлов и повторное открытие файлов.
Далее переключите А запись на второй сервер и так же проверьте его работу.
В DNS используйте установленную текущую ноду как master. Запустите скрипт управления БД и проверьте текущие статусы серверов.
Настоятельно рекомендуется отработать поэтапное переключение из slave в master на втором сервере в случае ошибок на первом сервере.
8. Резервное копирование и восстановление
Для проведения резервирования и восстановления необходимо использовать скрипты из статьи Резервное копирование/восстановление Корпоративный сервер 2024. ↗
Перед использованием скрипта создания бекапа добавьте каталог mail, приведите строку к виду:
# Создание архива с бэкапом
tar cf "$backup_dir/cddisk-${backup_date}.tar.bz2" --selinux --use-compress-prog="lbzip2 -k -n$num_cores" /opt/r7-office $supervisor_dir /etc/r7-office /var/r7-office /var/www/r7-office "$backup_dir/cddisk_db.tar.gz /mail"При восстановлении на мастер ноде рекомендуется остановить службу:
systemctl stop glusterfs
И после завершения восстановления включить:
systemctl start glusterfs
При восстановлении резервной ноды нет необходимости выполнения восстановления, так как скрипт позволяет назначить вторую ноду репликой первой для БД и автоматическую синхронизацию каталогов производится средствами glusterfs.













