Skip to content

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 таков. Сначала зададим глобальные настройки массива, например:

dvr my_raid {
  root /storage/raid;
  raid 0;
  metadata idx;
  disk volume1;
  disk volume2 keep;
  disk volume3 migrate;
}

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

stream channel5 {
  input fake://fake;
  dvr @my_raid 7d;
}

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

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

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

  • Глобальные настройки DVR массива
  • Настройки, которые можно переопределить в настройках отдельного потока
  • Параметры, управляющие процессом записи на диски.

Ниже описание всех настроек.

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

  • root — базовый каталог, в котором смонтированы диски и находятся индексы. Пример: root /dvr/raid;
  • raid — включает возможность работы с массивом (допустимое значение — 0). Если вы включили эту опцию, проверяется наличие активных дисков. Flussonic проверит major device корневого пути и файлов в каталогах и не разрешит запись, если это не смонтировавшаяся папка. Пример: raid 0;
  • active — количество дисков, на которые будет идти запись данных. При большом количестве дисков вести запись сразу на все неэкономно по затратам электроэнергии, поэтому можно ограничиться несколькими дисками. Если не указывать эту опцию, то запись будет производиться на все диски, имеющие достаточно свободного места. Пример: active 2;
  • metadata — директория под root для хранения кэшированных метаданных. Эту директорию создавать вручную не нужно, она будет создана при применении настроек. Мы рекомендуем использовать SSD для быстрого доступа к архиву. Пример: metadata idx;
  • 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 они будут по умолчанию применяться ко всем потокам. Их можно переопределить в настройках отдельного потока):

  • limits — ограничения на размер и глубину архива. Например, 90% 3G 1d.
  • replicate — репликация DVR. Можно указать порт в необязательном параметре port=1234. Пример: replicate port=2345;
  • copy — копирование данных по частям в другое место. Пример: copy /opt/storage;
  • schedule — расписание записи в архив. Пример: schedule 3-6,5-8,23-5;

Описания режимов для управления записью на диски вы можете найти в API Reference.

Монтирование дисков в 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татистика времени выполнения

Статистика о состоянии RAID доступна в API вызове dvr_get. См. HTTP v3 API.

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

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

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

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

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

Глобальные настройки DVR в веб-интерфейсе

В этом разделе мы расскажем, как записать архив в наш программный RAID-массив.

Чтобы добавить глобальные настройки DVR, включая RAID массивы:

Перейдите в Config > DVR > Add DVR и определите глобальные настройки RAID массива. Чтобы добавить более одного массива, ещё раз воспользуйтесь кнопокй Add DVR.

Flussonic DVR RAID

Поле Copy chunks to this location нужно для копирования архива статического потока в указанную директорию.

Note

По-другому открыть глобальные настройки можно из настроек (любого) потока в разделе DVR этого потока, кликнув ссылку Edit DVR configurations под Global DVR config.

Чтобы применить глобальные настройки к потоку и переопределить некоторые из них:

В настройках данного потока в разделе DVR кликните в поле Global DVR config и выберите ранее созданный массив в появившемся списке. В примере был выбран один массив my_raid:

Flussonic DVR RAID

На странице DVR появятся некоторые значения, взятые из глобальных настроек (Path, Copy chunks to this location, and so on) — это те настройки, которые вы можете переопределить для потока если необходимо.

Архив потока будет записываться в выбранный RAID.

Чтобы открыть глобальные настройки из настроек потока, в разделе DVR этого потока кликните ссылку Edit DVR configurations под Global DVR config.

Как заменить сбойный диск в Flussonic RAID

Замена сбойного диска для Flussonic RAID в общем случае состоит из следующих шагов:

  • Включить режим Abandon для диска во вкладке "DVR" для выбранного стримера. Описание режимов диска можно посмотреть в документации здесь:

https://flussonic.com/doc/api/reference/#tag/dvr/operation/dvr_disk_save|body|mode

  • В начале следующего часа проверить, что запись на этот диск больше не осуществляется:
lsof -p pidof streamer | grep 'devicename'

где devicename - название диска в /dev/.

  • Заменить "отказавший" диск на новый, проверить его название - оно не должно измениться при сохранении точки подключения в сервере.
  • Разметить и отформатировать новый диск, смонтировать его по тому же пути, что был у старого диска - проверить в /etc/fstab и секции "dvr watcher" в /etc/flussonic/flussonic.conf или во вкладке "DVR" выбранного стримера.
  • Переключить режим для этого нового диска в рейде из "Abandon" в "Normal".
  • В начале следующего часа Flussonic начнет писать архив на этот новый диск.

Warning

Если сервер не поддерживает замену дисков в "горячем режиме", то диск нужно заменить с отключением сервера.