Технические особенности Linux-версии🔗

Местонахождение файлов сервера🔗

Местонахождение важных файлов сервера Macroscop на диске:

  • Папка с сервером: /opt/MacroscopServer

  • Логи сервера: /opt/MacroscropServer/Macroscop/Logs_MacroscopServer

  • Конфигурация сервера: /opt/MacroscropServer/MacroscopServerConfigs

Автоматическое монтирование дисков при запуске сервера🔗

При старте сервер Macroscop автоматически монтирует все подходящие разделы дисков из /dev в папку /mnt/{uuid}, где uuid — универсальный уникальный идентификатор раздела диска. Это сделано для того, чтобы при перезагрузке системы сервер Macroscop мог записывать архив даже в ситуации, когда разделы не были примонтированы пользователем заранее. Не рекомендуется самостоятельно, без необходимости, монтировать разделы дисков и настраивать на них запись архива.

Автоматическое монтирование дисков не производится для системных и загрузочных дисков, LVM-томов, дисков из состава программных RAID и т.д. То есть диски, помеченные нижеследующими флагами, не будут автоматически монтироваться:

  • boot

  • esp

  • bios_grub

  • legacy_boot

  • msftres

  • irst

  • root

  • swap

  • raid

Macroscop работает только с устройствами из /dev, поэтому в качестве сетевого хранилища можно использовать только iSCSI. NFS или SMB работать не будут.

Список флагов для раздела можно получить при помощи команды:

parted -l

Поддерживаются следующие файловые системы:

  • ext2

  • ext3

  • ext4

  • btrfs

  • reiserfs

  • ntfs (с использованием ntfs-3g)

Узнать файловую систему можно при помощи команды:

df -Th | grep "^/dev"

Добавление новых дисков в систему🔗

При ручном добавлении нового диска в систему необходимо подключить и отформатировать диск, затем создать на нём раздел. При запуске сервера Macroscop произойдёт автоматическое монтирование диска, как описано в пункте выше.

Утилита fdisk🔗

Ручное добавление дисков осуществляется при помощи утилиты fdisk:

  1. Проверьте информацию о диске:

    sudo fdisk -l
    
    ../_images/check-disk.png
  2. Создайте на нужном диске раздел:

    sudo fdisk /dev/sdb
    

    Для дальнейшей настройки диска по умолчанию введите ключ n, затем нажмите четыре раза Enter и введите ключ w.

    При необходимости можно настроить разделы и сектора на ваше усмотрение, соблюдая требования из раздела выше «Автоматическое монтирование дисков при запуске сервера».

    ../_images/create-disk-partition.png

    Обратите внимание, что утилита fdisk по умолчанию использует MBR (Master Boot Record), что не позволяет создать раздел объёмом более 2 ТБ. Для создания раздела объёмом более 2 ТБ необходимо использовать GPT (GUID Partition Table), то есть указать ключ g в самом начале работы с диском.

    ../_images/create-disk-partition-gpt.png
  3. Проверьте, что раздел корректно создался:

    sudo fdisk -l
    
    ../_images/check-disk-partition.png
  4. Создайте в новом разделе файловую систему ext4:

    sudo mkfs.ext4 /dev/sdb1
    
    ../_images/create-disk-file-system.png
  5. Перезапустите Macroscop:

    sudo systemctl restart macroscop
    
  6. После перезапуска настройте архив в приложении Macroscop Конфигуратор.

Утилита parted🔗

Для создания раздела объёмом более 2 ТБ следует использовать разметку GPT (GUID Partition Table). Для создания GPT-раздела вместо утилиты fdisk используется parted.

Ручное добавление дисков с помощью утилиты parted:

  1. Проверьте информацию о дисках и разделах:

    sudo lsblk
    

    Пример ответа:

    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda    253:0    0   40G  0 disk
    └─sda1 253:1    0   40G  0 part /
    sdb    253:16   0  100G  0 disk
    

    В примере представлены 2 диска:

    • /dev/sda — системный диск.

    • /dev/sdb — новый диск c данными.

  2. Запустите утилиту parted для работы с диском /dev/sdb:

    sudo parted /dev/sdb
    

    Пример ответа:

    GNU Parted 3.1
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted)
    
  3. Чтобы просмотреть текущую разметку раздела диска, введите команду:

    sudo parted /dev/sdb print
    
    Error: /dev/sdb: unrecognised disk label
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sdb: 107GB
    Sector size (logical/physical): 512B/512B
    Partition Table: unknown
    Disk Flags:
    (parted)
    

    Если для параметра Partition Table указано значение «unknown», это означает, что на диске отсутствует разметка разделов.

  4. Задайте разметку GPT для таблиц раздела с помощью следующей команды:

    mklabel gpt
    

    Примечание

    При изменении разметки таблиц раздела все данные на диске удаляются.

  5. Чтобы просмотреть текущую разметку раздела диска, введите команду:

    (parted) print
    
    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sdb: 107GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags:
    
    Number  Start  End  Size  File system  Name  Flags
    
  6. Установите единицу измерения диска в секторах:

    unit s
    
  7. В примере для нового диска будет создан один раздел, который будет начинаться с 2048 и использовать 100% остальной части диска. Для задания параметров выполните команду:

    mkpart test 2048s 100%
    

    Пример ответа:

    mkpart opt 2048s 100%
    
  8. Чтобы посмотреть сведения о новом разделе диска, введите команду:

    (parted) print
    

    Пример ответа:

    Model: ATA VBOX HARDDISK (scsi)
    Disk /dev/sdb: 107GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt
    Disk Flags:
    
    Number  Start  End         Size        File system  Name  Flags
     1      2048s  209713151s  209711104s               test
    
  9. Чтобы закрыть утилиту parted, введите команду:

    (parted) quit
    

    Пример ответа:

    Information: You may need to update /etc/fstab.
    
  10. Чтобы просмотреть сведения о разделе диска, выполните команду:

    sudo lsblk
    

    Пример ответа:

    NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
    sda    253:0    0   40G  0 disk
    └─sda1 253:1    0   40G  0 part /
    sdb    253:16   0  100G  0 disk
    └─sdb1 253:17   0  100G  0 part
    

    Для диска /dev/sdb отображается созданный раздел /dev/sdb1.

  11. Создайте в новом разделе файловую систему ext4:

    sudo mkfs.ext4 /dev/sdb1
    
  12. Перезапустите Macroscop:

    sudo systemctl restart macroscop
    
  13. После перезапуска настройте архив в приложении Macroscop Конфигуратор.

Примечание

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

Предупреждение

Сервер Macroscop работает только с дисками, на которых созданы разделы. На дисках, на которых отсутствуют разделы, но при этом может присутствовать файловая система, корректная работа приложения и архива не гарантируется. Для использования такого диска следует выполнить действия, описанные выше, как при добавлении нового диска в систему. При этом данные диска не сохранятся.

Особенности работы базы данных Firebird🔗

После установки сервера Macroscop может возникнуть ситуация, когда запись в архив ведётся, но база данных при этом отсутствует (то есть, не сохраняются события в журнале). Это может произойти после того, как диск для записи архива был примонтирован в папку пользователя. Для решения данной проблемы необходимо пользователю операционной системы, от имени которого осуществляется доступ к базе данных (пользователь firebird), предоставить доступ на чтение в точке монтирования диска, на который производится запись архива.

Это можно сделать двумя способами:

  • Перемонтировать диск для записи в архив в папку системы, а не в папку текущего пользователя.

  • Проверить путь от корня (/) до точки монтирования диска. У пользователя firebird должно быть право на чтение каждого каталога. Просмотреть права на каталог можно по команде:

    sudo ls -l
    

    Примечание

    Пользователь firebird относится к прочим пользователям.

    Дать пользователю firebird права на чтение текущего каталога можно по команде:

    sudo chmod o+r
    

Предупреждение

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

Сохранение кадров на диск🔗

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

Предупреждение

Сохранение кадров разрешено на любой диск, кроме системного.

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

Например, для сохранения кадров на архивный диск потребуется узнать полный путь до него при помощи команды:

ls -la /mnt/

В списке будет каталог с названием UUID диска:

../_images/saveframe-archivedisk.png

Далее необходимо создать каталог для сохранения кадров, например camframes:

sudo mkdir /mnt/1aa5a91e-4456-4e6e-842e-3ef45946581e/camframes

Получившийся путь добавить в настройки действия Сохранить кадр:

../_images/saveframe-configurator.png

Доступ к камерам по доменным именам🔗

По умолчанию в Linux при разрешении доменного имени приоритет отдается IPv6-адресам. Некоторые плагины камер в Macroscop могут не работать по IPv6-адресам.

Для решения данной проблемы нужно добавить в файл /etc/gai.conf следующую запись:

precedence ::ffff:0:0/96 100

В результате при разрешении всех доменных имён предпочтение будет отдаваться IPv4-адресам.

Если нужно задать IPv4-адрес для определённого имени, можно добавить соответствующую запись в файл /etc/hosts. Например:

192.168.100.1 cam-1.mycompany.com

Перезапуск и остановка сервера🔗

Ниже приведены команды, управляющие состоянием сервера Macroscop.

Остановка сервера:

systemctl stop macroscop.service

Запуск сервера:

systemctl start macroscop.service

Перезапуск сервера:

systemctl restart macroscop.service

Проверка статуса сервера (активен/не активен):

systemctl status macroscop.service

Связанные ссылки🔗

Устранение неполадок при работе на ОС семейства Linux