Локальные пути
Система распределена, но разные логические роли, работающие на разных серверах требуют доступа к одним и тем же файлам. Например, роль ws сохранила файл к сценарию IVR, роль ivr исполняет компонент воспроизведения и проверяет наличие файла, а роль mg осуществляет непосредственное воспроизведение. Таких примеров масса, и все они требуют единения файловой системы между серверами.
Принципиально в системе «Era» существует несколько различных видов каталогов:
-
Синхронизационная папка, файлы из которой автоматически растекаются по серверам в соответствии с назначением.
-
Сетевая папка хранилища на сайте, размещение в которое делает файл доступным с других серверов этого сайта.
-
Сетевая папка глобального хранилища, размещение в которое делает файл доступным с других серверов всех сайтов.
-
Локальная временная папка для ноды, размещение в которую временно и делает файл недоступным для других серверов, очищается при запуске ноды.
-
Папка для записи, используемая медиа-шлюзами для сохранения RTP-трафика.
-
Сетевые папки хранилищ записей разговоров, которые могут быть как глобальными, так и сайтовыми, их может быть много и каждый микшер настраивается на сохранение в конкретную из них.
Настройка корневых каталогов для указанных выше категорий производится в конфигурации для каждого сервера отдельно.
Абсолютные и относительные прямые пути ОС
Абсолютный или относительный путь – это 1 уровень ссылки на файл.
Работа с путями 1 уровня в сценариях запрещена.
Корневые ключи, задаваемые в конфиге
Корневые папки по типам – это 2 уровень ссылки на файл.
Работа с путями 2 уровня в сценариях запрещена.
Типы путей:
rshare.sign
Служебный файл, наличие которого указывает системе «Era» на то, что сетевой каталог подключен.
-
Необходим для работы сервисов системы с каталогами
:SITESHARE
и:GLOBALSHARE
. -
Файл должен быть создан на подключенном сетевом хранилище. При отсутствии сетевого подключения этот файл исчезает, система понимает что каталог не доступен.
-
Если сетевое хранилище не используется, то создается файл непосредственно в каталоге
:SITESHARE
или:GLOBALSHARE
сервера.
rshare
Для проверки выполнить:
hd rshare.sign
Результат:
00000000 72 73 68 61 72 65 |rshare| 00000006
Работа с файловой системой в сценариях
Все динамические указания файлов должны использовать один из специализированных префиксов (3 уровень).
В сценариях разрешена работа только с путями 3 уровня.
Запрещены переходы назад (/..)
.
DFSync (domain file sync)
Статическая информация, синхронизирующаяся по всем серверам всех сайтов в течение 10-20 секунд. Разделяется на общую и доменную. Каталоги с доменами синхронизируются на серверах, принадлежащих сайтам, где обслуживается домен.
Префикс | Описание |
---|---|
|
:SYNC + get_subpath_common() :SYNC/common/ /home/era/media/ + common/ . |
|
:SYNC + get_subpath_domain(Domain) + get_subpath_common() :SYNC/domains/[domain]/common/ /home/era/media/ + domains/domain.org/common/ . |
|
:SYNC + get_subpath_domain(Domain) + get_subpath_data() :SYNC/domains/[domain]/data/ /home/era/media/ + domains/domain.org/data/ . |
|
:SYNC + get_subpath_script_static(Domain, ScriptType, ScriptId) :SYNC/domains/[domain]/scripts/<SCRIPT_TYPE>/<SCRIPT_ID>/static/ /home/era/media/ + domains/domain.org/ + scripts/ivr/1233-43223-43213411234/static/ . |
|
:SYNC + get_subpath_script_data(Domain, ScriptType, ScriptId), :SYNC/domains/[domain]/scripts/<SCRIPT_TYPE>/<SCRIPT_ID>/data/ /home/era/media/ + domains/domain.org/ + scripts/ivr/1233-43223-43213411234/data/ . |
NFS
Shared сетевые каталоги. Разделяются на внутри-сайтовые и глобальные.
Префикс | Описание |
---|---|
|
:GLOBALSHARE + get_subpath_public() :GLOBALSHARE/public/ /home/era/globals/ + public . |
|
:GLOBALSHARE + get_subpath_domain(Domain) + get_subpath_data() :GLOBALSHARE/domains/[Domain]/data/ /home/era/globals/ + domains/domain.org/data/ . |
|
:GLOBALSHARE + get_subpath_script_data(Domain, ScriptType, ScriptId) :GLOBALSHARE/domains/[Domain]/scripts/[ScriptType]/[ScriptId]/data/ /home/era/globals/ + domains/domain.org/scripts/ivr/1233-43223-43213411234/data/ . |
|
:SITESHARE + get_subpath_public() :SITESHARE/public/ /home/era/nfs/ + public . |
|
:SITESHARE + get_subpath_domain(Domain) + get_subpath_data() :SITESHARE/domains/[Domain]/data/ /home/era/nfs/ + domains/domain.org/data/ . |
|
:SITESHARE + get_subpath_script_data(Domain, ScriptType, ScriptId) :SITESHARE/domains/[Domain]/scripts/[ScriptType]/[ScriptId]/data/ /home/era/nfs/ + domains/domain.org/scripts/ivr/1233-43223-43213411234/data/ . |
LFS
Локальные внутри-серверные каталоги.
Префикс | Описание |
---|---|
|
:LOCAL + ScriptId + Pid :LOCAL/[ScriptId]/[Pid]/ /home/temp/era/ + temp/nodename/ + 12341234-1234-1234-1234-123412341234/0.123.0/ . |