Документация Flussonic Media Server

Содержание

Flussonic RAID для DVR

Flussonic RAID для DVR — это программный RAID-массив, который обеспечивает высокую надежность и удобство при записи видеоданных на десятки дисков. Flussonic RAID имеет существенные преимущества перед похожими решениями:

  • Нет необходимости покупать дорогой аппаратный RAID-контроллер, например, на 60 дисков. Все диски используются в режиме JBOD (Just a Bunch of Disks). Каждый диск нужно отформатировать отдельно и вмонтировать в систему в определенный каталог. После этого вы настраиваете Flussonic, и он начинает следить за их состоянием и самостоятельно распределять данные по ним.

  • Надежность: При сбое в работе какого-либо диска запись продолжится на другие диски в массиве. Может пострадать только часть данных, записанная на отказавший диск.

  • Непрерывная работа: Можно добавлять диски или удалять их из RAID прямо во время записи архива, и не требуется перезапуск Flussonic — изменения применятся сразу.

  • Автоматическая "бесшовная" миграция данных между дисками в RAID, что делает возможным, например, удалить все данные с какого-либо диска без прерывания работы с этим DVR архивом (записи или проигрывания).

  • Автоматическое распределение записываемых данных между дисками в RAID. Flussonic сам решает, на какой диск оптимальнее будет записать данные. Поток данных может быть больше, чем можно успеть записать на один диск за приемлемое время — поэтому Flussonic равномерно распределяет запись между дисками. А чтобы снизить затраты электроэнергии, можно ограничить число дисков, на которые одновременно может производиться запись.

  • Защита от записи в случае, если произошла ошибка с монтированием дисков. Такая защита предотвратит запись всех данных в корневой раздел.

На этой странице:

Настройка программного массива дисков для Flussonic Media Server

Существующие архивы перенести в RAID нельзя, можно только начать запись заново. Чтобы начать работу с RAID, нужно сконфигурировать сервер, добавив настройки дискового массива (это по сути глобальные настройки DVR) и в потоках указать этот массив для записи архива.

Порядок настройки различается для Flussonic Watcher и для Flussonic Media Server.

Массив дисков для записи DVR создается на уровне операционной системы, когда вы монтируете диски, а затем весь массив управляется программно Flussonic-сервером.

Настройки массива — это глобальные настройки DVR. Flussonic позволяет задать эти настройки в конфигурационном файле /etc/flussonic/flussonic.conf.

Сначала зададим глобальные настройки массива, например:

dvr my_raid {
  root /dvr/raid;
  raid 0;
  metadata idx;
  disk d1;
  disk d2 keep;
  disk d3 migrate;
}

Затем в настройках потока укажем, что архив следует записывать в массив my_raid с глубиной семь дней:

stream channel5 {
  url tshttp://10.0.4.5:9000/streamname;
  dvr @my_raid 7d;
}

Поток примет глобальные настройки, указанные в настройках массива my_raid. Некоторые из них можно переопределить в настройках потока.

Пример с полным набором настроек

Дисковый массив имеет три вида настроек:

  • Глобальные настройки DVR массива
  • Настройки, которые можно переопределить в настройках отдельного потока
  • Параметры, управляющие процессом записи на диски.
dvr my_raid {
  root /dvr/raid;     # base directory
  raid 0;               # turn on RAID
  active 2;             # write only to 2 disks
  metadata idx;         # path to cached metadata
  no_index;             # do not index streams
  limits 90% 3G 1d;     # limits for archives
  copy /opt/storage;    # copy to /opt/storage
  replicate port=2345;  # replicate (specify on a restreamer)
  schedule 3-6,5-8,23-5;# when to write
  disk d1;              # disk in usual mode (read and write)
  disk d2 keep;         # do not delete the data
  disk d3 readonly;     # read-only mode
  disk d4 abandon;      # do not write, but can delete old data
  disk d5 migrate;      # copy to other disks and remove all data
  disk d6 rescue;       # copy to other disks but keep the data
}

Глобальные настройки DVR, которые действуют только для DVR на дисковом массиве:

  • root — базовый каталог, в котором смонтированы диски и находятся индексы.

  • raid — включает возможность работы с массивом (допустимое значение — 0). Если вы включили эту опцию, проверяется наличие активных дисков. Flussonic проверит major device корневого пути и файлов в каталогах и не разрешит запись, если это не смонтировавшаяся папка.

  • active — количество дисков, на которые будет идти запись данных. При большом количестве дисков вести запись сразу на все неэкономно по затратам электроэнергии, поэтому можно ограничиться несколькими дисками. Если не указывать эту опцию, то запись будет производиться на все диски, имеющие достаточно свободного места.

  • metadata — директория под root для хранения кэшированных метаданных. Эту директорию создавать вручную не нужно, она будет создана при применении настроек. Мы рекомендуем использовать SSD для быстрого доступа к архиву.

  • disk — путь до примонтированного диска. Указанные в опции disk пути должны быть реальными точками монтирования. Например:

Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/pve-vm--15--disk--1  7.9G  5.7G  1.8G  77% /
/dev/loop0                       196G  4.0G  182G   3% /dvr/_raid_/d1
/dev/loop1                       196G   4.0G  182G   3% /dvr/_raid_/d2

Настройки, которые применимы к отдельным потокам (при указании в глобальных настройках DVR они будут по умолчанию применяться ко всем потокам. Их можно переопределить в настройках отдельного потока):

  • no_index — не добавлять поток в индекс DVR, отключая тем самым механизмы удаления данных для удаленных потоков.

  • limits — ограничения на размер и глубину архива. Например, 90% 3G 1d.

  • replicate — репликация DVR. Можно указать порт в необязательном параметре port=1234.

  • copy — копирование данных по частям в другое место.

  • schedule — расписание записи в архив.

Опции для управления записью на диски:

  • keep — Flussonic пишет данные, но никогда не удаляет. Используйте эту опцию, когда нужно хранить весь архив.

  • readonly — Flussonic не пишет данные на этот диск, возможно только чтение. Используйте для:

    • жесткого диска с большим износом, писать на который ничего нельзя (в том числе удалять файлы и обновлять индекс), и нельзя копировать. Диск будет использоваться в режиме только чтение, пока данные на нем не устареют.
    • работоспособного диска, когда-то записанного в режиме keep, если нужно хранить данные.
  • abandon — Flussonic не будет больше записывать новые данные на этот диск. Когда данные устареют, он удалит их. Но обновляет индекс. Используйте эту опцию, когда нужно заменить диск, например, на более емкий.

  • migrate — используйте, если срочно нужно извлечь диск, но данные нельзя терять. Flussonic на лету сохранит данные в массиве и удалит их с диска. При этом запись архива не прекращается. Вы узнаете, что данные смигрировались, если больше нет обращений к этому диску. При удалении диска из массива не нужно перезагружать Flussonic.

  • rescue — экстренно копирует данные со старого диска, который может скоро стать неработоспособным. Данные, в отличие от migrate, не удаляются. Архив с диска продолжает читаться, но новые данные не пишутся.

Монтирование дисков в Linux

Так как Flussonic RAID это программный RAID, то диски необходимо монтировать как обычные отдельные диски ext4. Вы можете использовать и другую файловую систему, но мы настоятельно рекомендуем ext4, если нет серьезного повода использовать что-то другое.

Приводим реальную конфигурацию одного из наших лабораторных серверов:

root@dvr:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   9.8T  0 disk /storage/d1
sdb      8:16   0   9.8T  0 disk /storage/d2
sdc      8:32   0   9.8T  0 disk /storage/d3
sdd      8:48   0   9.8T  0 disk /storage/d4
sde      8:64   0 119.2G  0 disk
└─sde1   8:65   0 119.2G  0 part /

root@dvr:~# cat /etc/fstab
# / was on /dev/sda1 during installation
# OS SSD DISK
UUID=5081dd01-6b97-4166-b05c-e9f59476b553 /               ext4    errors=remount-ro 0       1

#sda
UUID=8c5bcc39-8599-4545-a373-f63a441b53b8 /storage/d1   ext4    defaults,nofail,x-systemd.device-timeout=5  0   2
#sdb
UUID=f4888c12-6faa-4ac1-b4fb-e04c3e4ddc31 /storage/d2   ext4    defaults,nofail,x-systemd.device-timeout=5      0       2
#sdc
UUID=7feedd26-feb4-47ad-99b8-ec732cbd87aa /storage/d3   ext4    defaults,nofail,x-systemd.device-timeout=5      0       2
#sdd
UUID=ed41fad5-92fd-4737-87ff-c6a859aeed10 /storage/d4   ext4    defaults,nofail,x-systemd.device-timeout=5      0       2

Важно:

  • Операционная система должна быть установлена на SSD диск.
  • Все HDD, используемые в массиве Flussonic RAID, должны быть примонтированы в одну корневую директорию.

Настройки в конфигурационном файле Flussonic:

dvr raid {
  root /storage;
  raid 0;
  disk d1;
  disk d2;
  disk d3;
  disk d4;
}

Если у вас есть какие-либо вопросы по поводу монтирования дисков в Linux или конфигурации Flussonic RAID, задайте их своему системному администратору или нашей службе поддержки клиентов.

Cтатистика времени выполнения (v20.04)

Чтобы посмотреть статистику о состоянии RAID, выполните команду API '/flussonic/api/read_config?runtime=true'. См. HTTP API read_config.

Статистика показывает состояние дисков в RAID:

  • status — примонтирован или не примонтирован
  • blobs_count — количество блобов на диске
  • size — размер в байтах
  • usage — процент загруженность диска
  • io_usage — загруженность диска из статистики /proc/devstat.

Если выполняется миграция, в ответе отображается скорость миграции, расчетное время окончания миграции и время последнего изменения значений:

  • migration_speed - скорость копирования последнего блоба, байт в секунду
  • migration_eta - приблизительное время окончания миграции, UTC seconds
  • migration_updated - время последнего изменения значений migration_speed и migration_eta, позволяет понять, насколько устарели данные.

После окончания миграции эти параметры становятся undefined.