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 {
  url 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;

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

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

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

  • жесткого диска с большим износом, писать на который ничего нельзя (в том числе удалять файлы и обновлять индекс), и нельзя копировать. Диск будет использоваться в режиме только чтение, пока данные на нем не устареют.

  • работоспособного диска, когда-то записанного в режиме keep, если нужно хранить данные.

  • abandon — Flussonic не будет больше записывать новые данные на этот диск. Когда данные устареют, он удалит их. Но обновляет индекс. Используйте эту опцию, когда нужно заменить диск, например, на более емкий. Пример: disk d4 abandon;

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

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

Монтирование дисков в 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.

Глобальные настройки 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.