Подключение нового раздела для хранения записей
Обзор
Хранение больших объемов записей следует организовывать на внешних файловых хранилищах, подключая их к платформе посредством S3 или NFS.
Эта статья покажет возможные варианты действий для случаев, когда размещение хранилища для записей не настраивалось особым образом и запись велась на локальные диски кластера, и необходимо увеличить хранилище или сменить раздел сервера.
Изменение пути для записи на сервере (новый расширенный раздел).
Исходная точка:
-
Эра хранит записи локально (не в S3).
-
Эра пишет внутри контейнера в каталог файловой системы /var/lib/era_files/recpath (по умолчанию в конфиге, либо иной).
-
В контейнере внутренний каталог файловой системы /var/lib/era_files/recpath (по умолчанию при установке, либо иной), подключен в качестве волюма к указанной при установке папке (по умолчанию /opt/era/era_recpath).
-
К серверу подключен новый диск/раздел, произведен маунт в какой-то каталог системы (например, /mnt/storageN).
Требуется провести на каждом сервере, либо на тех, где могут размещаться файлы записей и где подключены новые разделы. |
Правильный путь
Воспользоваться процедурой обновления контейнера. То есть переустановить контейнер дистрибутивом, подключив во время установки его к существующей (той же, что и при первоначальной установке) БД postgresql мастер-домена, с теми же параметрами установки, что и раньше, только указав новый каталог для recpath волюма: например, вместо /opt/era/era_recpath указать /mnt/storageN.
Короткий путь
Не требует переустановки контейнера, но требует перезапуска контейнера в удобное время. Используется symlink (опционально может использоваться mount с bind).
Шаг 1. В хосте папку /opt/era/era_recpath (по умолчанию, иное указывается при установке) следует переместить в /opt/era/era_recpath.old. Текущий контейнер продолжит работать с ней за счет привязки через inode во время предыдущего старта контейнера.
mv /opt/era/era_recpath /opt/era/era_recpath.old
Шаг 2. Создать новую папку с прежним именем:
mkdir -p /mnt/storage/era/recpath
Шаг 3. Создаем симлинк на папку, куда смонтирован новый подключенный диск/раздел:
ln -s /mnt/storage/era/recpath /opt/era/era_recpath
Шаг 4. Копируем в папку rshare.sign (сигнал для сервиса на корректное размещение пути для записей)
cp /opt/era/era_recpath.old/rshare.sign /opt/era/era_recpath
Шаг 5. В подходящее время перезапускаем контейнеры, либо систему целиком через веб-интерфейс, чтобы вновь запущенные контейнеры переключились на новую папку по ссылке.
docker restart era
Шаг 6. Переносим при необходимости сохранения файлов и доступов к ним из /opt/era/era_recpath.old в /opt/era/era_recpath (или идентично сразу в /mnt/storage/era/recpath).
mv -r /opt/era/era_recpath.old/domains /opt/era/era_recpath
Если планируется к использованию несколько различных подключенных дисков/разделов для хранения записей, то можно использовать единую папку /opt/era/era_recpath, внутри которой иметь подпапки (подразделы), каждый из которых является симлинком к каталогу, куда смонтирован отдельный диск/раздел. В конфигурации при этом следует добавить алиасы к соответствующим путям, например вместо /var/lib/era_files/recpath использовать /var/lib/era_files/recpath/volN, и для каждого из них добавить в параметр конфигурации сервера recstorepaths. |