Содержание
- Схема
- Описание
- Условия эксплуатации
- Технические требования
- 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.
Условия эксплуатации
1. Используйте одну доменную A-запись с несколькими IP-адресами (с возможностью включения и отключения IP-адресов) либо изменяйте доменную запись Корпоративного сервера вида *.domain.ru, например *.test2.s7-office.site. Для двух почтовых серверов используются отдельные записи (опционально).
2. В случае если почтовый сервер не нужен, то возможна установка без почтового сервера. Предварительно ознакомьтесь с инструкцией, чтобы исключить почтовый сервер из установки.
Команды, связанные с почтовым сервером, отмечены в данной статье.
3. При ошибках работы приложений на сервере master потребуется переключение сервера slave в режим master с помощью скрипта.
Технические требования
- 2 виртуальные машины;
- Файловое хранилище GlusterFS для синхронизации данных;
- Минимальные технические характеристики узлов (для тестирования):
- от 4 vCPU;
- от 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. Установка, запуск и добавление GlusterFS в автозагрузку на всех нодах
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
A-записи:
smtp - 192.168.27.186, 192.168.26.253 imap - 192.168.27.186, 192.168.26.253
Примеры A-записей:

А также TXT-запись:
v=spf1 +mx ~all
TXT-запись v=spf1 +mx ~all указывает, что отправлять почту от имени домена your-domain.ru могут серверы, указанные в MX-записях этого домена. Для остальных серверов применяется мягкий отказ (SoftFail).
SPF-запись не наследуется на поддомены.
Для корректной смены ролей master и slave требуется переключить IP-адреса в настройках DNS (отключить IP-адрес узла, переводимого в режим slave, и включить IP-адрес узла, переводимого в режим master).
3. Установка и настройка базы данных (БД)
Установите следующие пакеты на оба сервера:
sudo apt update && sudo apt install postgresql -y
3.1. База данных (БД)
Инструкция ниже выполняется на всех серверах.
Отредактируйте postgresql.conf:
sudo nano /etc/postgresql/11/main/postgresql.conf
В зависимости от установленной версии PostgreSQL путь к конфигурационному файлу может отличаться. Все действия описываются для 11 версии.
В файле postgresql.conf разрешите репликацию. Для этого отредактируйте /etc/postgresql/11/main/postgresql.conf:
listen_addresses = 'localhost,ip_srv1,ip_srv2' # Слушать на адресах port = 5432 # Задать порт БД wal_level = replica # Включить репликацию archive_mode = on # Включить архивирование WAL archive_command = 'cp %p /var/lib/postgresql/11/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 — IP-адреса внутренней сети первого и второго серверов.
Настройте аутентификацию пользователей в базе данных. Приведите к следующему виду файл /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 — IP-адреса первого и второго серверов соответственно.
Выполните перезапуск сервиса БД:
sudo systemctl restart postgresql
Инструкция ниже выполняется на сервере №1.
После базовой настройки базы данных создайте необходимую структуру БД и пользователей, затем настройте репликацию:
sudo -u postgres psql
В консоли psql> выполните следующие команды, подтверждая каждую нажатием Enter:
Не рекомендуется использовать другие имена для баз данных cddisk и ds.
Значения паролей, указанные в кавычках ('cddisk', 'ds' и 'replication_password'), замените на собственные.
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 — IP-адрес внутренней сети первого сервера с 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, укажите актуальное значение salt и нажмите ОК:

Выберите Да:

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

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

Дальнейшие действия нужно выполнять только при установке Корпоративного сервера 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, укажите актуальное значение salt и нажмите ОК:

Выберите Да:

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

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

Дальнейшие действия нужно выполнять только при установке Корпоративного сервера 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/)
Замените НОВОЕ_ЗНАЧЕНИЕ на значение из вывода предыдущей команды.
Пример: kCj7RMAAYCNtOh6KiGin.
Измените в /etc/r7-office/documentserver/local.json строку:
"dbHost": "localhost"
Здесь localhost необходимо заменить на адрес текущего master-сервера (первого сервера), например 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.test2.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;
- Перезапустить сервисы приложений — перезапускает сервисы приложений после изменения конфигураций;
- Показать текущий статус сервера — указывает состояние БД на текущем сервере;
- Остановка сервисов корпоративного сервера (холодный резерв) — останавливает сервисы корпоративного сервера для режима «холодный резерв»;
7.2. Настройка второго сервера
Укажите в скрипте текущее представление серверов (master и slave) в константах скрипта, проверьте корректность остальных параметров, запустите скрипт на втором сервере (slave) и выберите пункт меню «Установка параметров slave».
7.3. Проверка работы серверов
Для проверки потребуется использовать в DNS A-запись с IP-адресом первого сервера (master). Перейдите по адресу https://admin.test2.s7-office.site, убедитесь, что используется IP-адрес первого Корпоративного сервера 2024 (для проверки используйте команду ping), и используйте предустановленные логин и пароль superadmin. Создайте пользователя и проверьте редактирование, сохранение и повторное открытие файлов.
Далее переключите A-запись на второй сервер и также проверьте его работу.
В 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"При восстановлении на master-ноде рекомендуется остановить службу:
systemctl stop glusterfs
И после завершения восстановления включить:
systemctl start glusterfs
При восстановлении резервной ноды нет необходимости выполнения восстановления, так как скрипт позволяет назначить вторую ноду репликой первой для БД и автоматическую синхронизацию каталогов производится средствами GlusterFS.













