Удаленная файловая система, производительность и кеширование (davfs, cifs, sshfs)
Я храню файлы в Hetzner Storage Box . Что касается удаленного монтажа, у меня есть выбор между WebDAV, CIFS или sshfs.
После монтирования эти файлы будут доступны для Liquidsoap . Проблема здесь в том, что Liquidsoap может многое делать с файловой системой (чтобы вычислить продолжительность трека, микширование, выбор...). Тем более, что мои скрипты создают случайные плейлисты в каталогах, содержащих много файлов ( можно рассмотреть возможность более 10 тыс.).
Прежде чем приступить к тестированию, я хотел бы получить советы сообщества по этим трем вариантам монтирования, особенно по следующим пунктам:
- Кэширование . Это может быть самым важным моментом. Как уже говорилось, жидкое мыло делает много
open
, файловая система, которая сохраняет все открытые файлы в кеше (даже после того, как они закрыты), быстро заполнит локальное дисковое пространство и лишит возможности удаленного хранения этих файлов. Вдобавок ко всему, другие службы могут вносить изменения в удаленную файловую систему, и они должны быть отражены немедленно (например, мы не хотим, чтобы Liquidsoap пытался выполнить потоковую передачу файла, который был удален). - Скорость . Он должен быть быстрым, Liquidsoap должен получать данные и выполнять вычисления, пока не стало слишком поздно для их потоковой передачи.
- Безопасность . Все файлы являются общественным достоянием и являются общими как таковые (другая служба предлагает их загрузку), поэтому доступ для чтения не является такой уж большой проблемой. Но доступ для записи должен быть безопасным.
Я открыт для любого другого решения, если оно соответствует моим требованиям.
[РЕДАКТИРОВАТЬ]
Я провел несколько тестов, 3 идентичных сервера, за исключением файловой системы, используемой для монтирования удаленного хранилища.
- Приложение: azuracast (поскольку это приложение используется в конечном итоге, с таким же успехом можно протестировать весь продукт)
- Конфигурация: полноценное веб-радио. Более 25 тысяч файлов с планированием, плавным затуханием... и перекодированием в 15 потоков (HLS/AAC, mp3, OGG/Flac, каждый с 5 различными настройками качества)
Запуск сервера и сканирование библиотеки:
- Отметка 1: docker compose -d
- Отметка 2: все службы запущены
- Отметка 3: сканирование завершено, CIFS
- Отметка 4: сканирование завершено, DAVFS
- Отметка 5: сканирование завершено: SSHFS
Казалось бы, CIFS здесь лучший выбор. Тем более, что мне не нужны сложные списки ACL (провайдер хранилища все равно сопоставляет все одному и тому же пользователю).
Однако у меня есть две проблемы, и я был бы признателен за любое подтверждение/совет:
- Трафик не шифруется, но поскольку все эти данные в любом случае общедоступны, это не проблема, не так ли?
- Аутентификация зашифрована , поэтому нет риска, что кто-нибудь получит доступ на запись к моим данным (по крайней мере, по этому вектору), верно?
Спасибо