Видеонаблюдение через интернет в веб-браузере

Подготовка и установка устройства хранения медиа-архива.

Перед установкой дистрибутива Linux для системы видеорегистрации AVReg, вы должны знать 3 момента касательно размещения медиа-архива на жестком(их) диске(ах):

  1. архив AVReg должен размещаться на отдельном блочном устройстве ёмкостью не менее 3 ГБ;
  2. устройство может быть:
    1. единичным разделом жесткого диска;
    2. логическим LVM-томом (который может включать в том числе разделы нескольких дисков);
    3. собрано из нескольких разделов нескольких жестких дисков в программный RAID-массив, администрируемый через mdadm;
    4. собрано из нескольких жестких дисков с помощью BIOS-а и дискетки с драйвером в псевдо-аппаратный fake (лживый) RAID-массив - не рассматривается в силу ограниченности, с успехом заменяется на см. п.II;
    5. собрано из нескольких дисков с помощью специального SCSI/SATA-адаптера в настоящий аппаратный RAID-массив;
    6. собрано из нескольких жестких дисков в одно виртуальное устройство с помощью Mhddfs.
    7. несколько блочных устройств сразу, смонтированных на разные точки монтирования, каждое устройство для определённой группы камер.
  3. для многокамерных видеорегистраторов файловая система должна быть XFS от SGI®(предпочтительно) или Ext4.

Размещение архива на серверах NAS (англ. Network Attached Storage – сетевая система хранения) с доступом по iSCSI, SMB, NFS - возможно, но не рекомендуется.

Если вы новичок в linux, постарайтесь по максимуму решить вопросы с разбивкой диска в момент установки системы с помощью мастера установки или графическими инструментами Gparted или «дисковая утилита» графической среды Gnome.

:!: В случае тестирования или ознакомления с системой AVReg подойдёт любой вариант разбивки дисков, однако если вы собираете производительный многокамерный видеорегистратор - знайте следующее:

  1. /var (базы, кэши, логи и т.п) - рекомендуем не менее 30 ГБ (/var/lib/mysql - базы данных AVReg могут достигать 2-3 ГБ).
  2. Видео-файлы будут писаться в /var/spool/avreg (по-умолчанию, можно поменять), обычно на этот каталог монтируют устройство (раздел, lvm-том, райд-массив, сетевой диск) c файловой системой XFS или EXT4.
  3. Если есть возможность, «корневую» систему (включая /var) желательно разместить вообще на отдельном физическом диске, подключенном к отдельному SATA/IDE контроллеру. Таким образом, вы физически распараллелите одновременные (всегда так) запросы к базе данных и к файлам.

Подготовка и создание устройств

Eдиничный раздел

Запускаем от root-а программу cfdisk или fdisk и создаём ещё один раздел размером оставшегося дискового пространства.

Программный RAID-массив

Обязательно ознакомьтесь с теорией и основами software RAID:

  • Оригинальный последний Linux Software RAID HOWTO (англ.).
  • Перевод (русский, устаревший, теория верна) Software-RAID-HOWTO-2.4 (рус).
  • User manual по работе с основной утилитой MDADM: man 8 mdadm и её конфигурационный файл man 5 mdadm.conf (прим: не всегда нужен).

Установите программный пакет для работы с программным linux raid - mdadm:

Установка mdadm в deb-системах

aptitude install mdadm
# или
apt-get install mdadm
Основными единицами для создания программного RAID массива являются разделы. Вам нужно cfdisk-ом создать разделы на всех накопителях HDD из которых будет собран RAID массив и изменить тип файловой системы на «Linux RAID autodetect» (код fd). Если Вы забудете это сделать, то после перезагрузки ПК, система не сможет найти и запустить созданный массив RAID.

Например, для 4-х SATA-дисков, нужно последовательно в командной строке выполнить:

  • cfdisk /dev/sda
  • cfdisk /dev/sdb
  • cfdisk /dev/sdc
  • cfdisk /dev/sdd

прим: см. Обозначения дисков и дисковых разделов в системах linux.

и каждый раз выполнить 4 действия:

  1. создать новый раздел - кнопка «Новый» («New»);
  2. установить тип файловой системы fd («Linux RAID autodetect») - кнопка «Тип» («Type»);
  3. записать изменения на диск - кнопка «Запись» («Write»);
  4. нажать кнопку «Выход» («Quit»).
После изменения таблицы разделов рекомендуем перегружаться.

Затем, используя утилиту mdadm создайте RAID массив:

общий примерный синтаксис команды на создание массива

mdadm -CfR /dev/mdX --level=RAID_LEVEL --auto=yes --chunk=Kb --raid-devices=N part1 part2 ...

где:

  • -CfR /dev/mdX - создать и запустить массив /dev/mdX (вместо X нужно подставить число от 0 до 256 );
  • –level=RAID_LEVEL (или -l RAID_LEVEL) - уровень RAID (linear,raid0,raid1,raid4,raid5);
  • --chunk=Kb (или -с Kb) - размер chunk-а массива в Кб (по умолчанию 64, для raid4,raid5 поставьте 128). От сочетания уровня, размера chunk и количества дисков сильно зависит производительность массива.
  • –raid-devices=N (или -n N) - кол-во дисковых разделов, используемых для создания массива (см. ниже);
  • part1 part2 … - перечисляем имена дисковых разделов, !!! именно разделов диска (например: /dev/sda1 - с цифрой в окончании), а не самих дисков (например: /dev/sda).

Приведем наиболее простые примеры: RAID1 (зеркало) из 2-х SATA дисков (нужно 2 диска, размер = размер меньшего раздела, надежно, но медленно)

mdadm -CfR /dev/md0 -l raid1 --auto=yes -n 2 /dev/sda1 /dev/sdb1

RAID0 - слепить диски (нужно от 2-х дисков, размер = сумма, скорость высокая, надежность самая низкая)

mdadm -CfR /dev/md0 -l raid0 --auto=yes -n 3 /dev/sda1 /dev/sdb1 /dev/sdc1

RAID5 - слепить диски (нужно от 3-х дисков, размер = примерно сумма, скорость записи низкая, надежность средняя)

mdadm -CfR /dev/md0 -l raid5 -c 128 --auto=yes -n 3 /dev/sd[abc]1

Прим: вместо /dev/sd[abc]1 командная оболочка shell «подставит» /dev/sda1 /dev/sdb1 /dev/sdc1.

После создания массива, обязательно дождитесь его синхронизации (resync). Для контроля над resync можно время от времени смотреть вывод команд

cat /proc/mdstat

или

mdadm -D /dev/mdX

где X - номер устройства созданного массива.

Затем нужно поправить конфигурационный файл /etc/mdadm/mdadm.conf.

Сначала проверяем наличие строки

DEVICE partitions

в конфигурационном файле mdadm.conf.

Cканируем mdadm.conf или(и?) /proc/mdstat на предмет отсутствующей информации:

mdadm --detail --scan

Должно напечататься что-то вроде этого:

ARRAY /dev/md0 level=raid0 num-devices=2 UUID=044c94c3:73647f3f:c230666b:5103eba0

Добавляем «найдённую» конфигурацию в файл mdadm.conf:

mdadm --detail --scan >> /etc/mdadm/mdadm.conf

И финальным аккордом запускаем конфигурационный скрипт пакета mdadm:

dpkg-reconfigure mdadm

Читаем русский текст в диалоговых окнах и отвечаем на вопросы.

Результатом этой настройки должны стать:

  • дополнительный тюнинг конфигурационного файла mdadm.conf (например, включение демона мониторинга);
  • изменение правил udev загрузочного образа initramfs и его пересборка с целью автоматического определения массива(ов) в момент загрузки системы;

Дополнительные ссылки по теме linux software raid:

Аппаратный RAID-массив

Перед выбором адаптера аппаратный RAID-массива настоятельно рекомендуем «изучить» Google на предмет совместимости конкретной модели с конкретным ядром linux в Вашем дистрибутиве или наличия драйверов под Linux.

После этого, все диски, подключенные к плате адаптера, будут видны как одиночный диск. Далее - всё как для единичного раздела (см. выше).

Форматирование

Примечания:

  • для архива AVReg необходимо использовать файловую систему XFS;
  • пакет xfsprogs c утилитами для работы с XFS должен быть установлен заранее.

форматируем устройство файловой системой XFS

mkfs.xfs -L MEDIA девайс

где:

  • -L MEDIA - метка тома (опционально);
  • девайсом может быть один из сл. вариантов (см. выше):
    1. единичный раздел /dev/[hs]d[a-z][0-9]*
    2. software raid /dev/md[0-9]*

Автоматическое монтирование

Штатный рекомендуемый каталог для медиа-архива - /var/spool/avreg. Он создаётся при установки пакета avreg-common (следующий шаг установки), однако его (каталог) можно создать самостоятельно прямо сейчас.

выполняем от root-a

mkdir /var/spool/avreg

После того как и устройство хранения и точка монтирования подготовлены, нужно обеспечить автоматическое подключение (монтирование) при загрузке системы. Делается это в файле /etc/fstab, в который нужно дописать строку:

девайс       /var/spool/avreg  xfs   rw,nosuid,nodev,noexec,noatime,grpid  0  2

Пример (необязательно точно повторять) рабочего файла fstab для системы с одним IDE-диском:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hda2       /               ext3    defaults,errors=remount-ro,grpid 0       1
/dev/hda1       /boot           ext3    defaults        0       2
/dev/hda3       /home           ext3    nodev,nosuid,data=journal,grpid    0       2
/dev/hda7       /tmp            ext2    rw,nosuid,nodev,noexec,grpid   0       2
/dev/hda5       /usr            ext3    rw,nodev,noatime        0       2
/dev/hda6       /var            ext3    nodev,nosuid,grpid    0       2
/dev/hda8       none            swap    sw              0       0
/dev/hdc        /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
/dev/hda9       /var/spool/avreg  xfs   rw,nosuid,nodev,noexec,noatime,grpid  0  2

Пробуем смонтировать устройство-хранилище:

mount -v /var/spool/avreg

Если есть ошибки - исправляем.

Замечания по правам доступа к /var/spool/avreg.

Если каталог /var/spool/avreg не является точкой доступа, то по-умолчанию он имеет следующие атрибуты:

% ls -l1d /var/spool/avreg
drwxrwxr-x 3 avreg avreg 4096 Янв  5 10:26 /var/spool/avreg

Если каталог /var/spool/avreg является точкой доступа, то его атрибуты определяются в файле /etc/default/avreg:

% cat /etc/default/avreg | grep SPOOL
SPOOL_ROOT='/var/spool/avreg'
# set if SPOOL_ROOT is mountpoint
SPOOL_CHMOD='0775'
SPOOL_CHOWN='root:avreg'

и устанавливаются при каждом старте демона avregd.


Перейти к следующему разделу «Установка серверных пакетов AVReg.»

manual/install/storage.txt · Последние изменения: 2018-09-24