Технические особенности 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:
Проверьте информацию о диске:
sudo fdisk -l
Создайте на нужном диске раздел:
sudo fdisk /dev/sdb
Для дальнейшей настройки диска по умолчанию введите ключ n, затем нажмите четыре раза Enter и введите ключ w.
При необходимости можно настроить разделы и сектора на ваше усмотрение, соблюдая требования из раздела выше «Автоматическое монтирование дисков при запуске сервера».
Обратите внимание, что утилита fdisk по умолчанию использует MBR (Master Boot Record), что не позволяет создать раздел объёмом более 2 ТБ. Для создания раздела объёмом более 2 ТБ необходимо использовать GPT (GUID Partition Table), то есть указать ключ g в самом начале работы с диском.
Проверьте, что раздел корректно создался:
sudo fdisk -l
Создайте в новом разделе файловую систему ext4:
sudo mkfs.ext4 /dev/sdb1
Перезапустите Macroscop:
sudo systemctl restart macroscop
После перезапуска настройте архив в приложении Macroscop Конфигуратор.
Утилита parted🔗
Для создания раздела объёмом более 2 ТБ следует использовать разметку GPT (GUID Partition Table). Для создания GPT-раздела вместо утилиты fdisk используется parted.
Ручное добавление дисков с помощью утилиты parted:
Проверьте информацию о дисках и разделах:
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 данными.
Запустите утилиту 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)
Чтобы просмотреть текущую разметку раздела диска, введите команду:
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», это означает, что на диске отсутствует разметка разделов.
Задайте разметку GPT для таблиц раздела с помощью следующей команды:
mklabel gpt
Примечание
При изменении разметки таблиц раздела все данные на диске удаляются.
Чтобы просмотреть текущую разметку раздела диска, введите команду:
(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
Установите единицу измерения диска в секторах:
unit s
В примере для нового диска будет создан один раздел, который будет начинаться с 2048 и использовать 100% остальной части диска. Для задания параметров выполните команду:
mkpart test 2048s 100%
Пример ответа:
mkpart opt 2048s 100%
Чтобы посмотреть сведения о новом разделе диска, введите команду:
(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
Чтобы закрыть утилиту parted, введите команду:
(parted) quit
Пример ответа:
Information: You may need to update /etc/fstab.
Чтобы просмотреть сведения о разделе диска, выполните команду:
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.
Создайте в новом разделе файловую систему ext4:
sudo mkfs.ext4 /dev/sdb1
Перезапустите Macroscop:
sudo systemctl restart macroscop
После перезапуска настройте архив в приложении Macroscop Конфигуратор.
Примечание
При добавлении в систему диска с уже существующим разделом в дополнительных настройках нет необходимости.
Предупреждение
Сервер Macroscop работает только с дисками, на которых созданы разделы. На дисках, на которых отсутствуют разделы, но при этом может присутствовать файловая система, корректная работа приложения и архива не гарантируется. Для использования такого диска следует выполнить действия, описанные выше, как при добавлении нового диска в систему. При этом данные диска не сохранятся.
Особенности работы базы данных Firebird🔗
После установки сервера Macroscop может возникнуть ситуация, когда запись в архив ведётся, но база данных при этом отсутствует (то есть, не сохраняются события в журнале). Это может произойти после того, как диск для записи архива был примонтирован в папку пользователя. Для решения данной проблемы необходимо пользователю операционной системы, от имени которого осуществляется доступ к базе данных (пользователь firebird), предоставить доступ на чтение в точке монтирования диска, на который производится запись архива.
Это можно сделать двумя способами:
Перемонтировать диск для записи в архив в папку системы, а не в папку текущего пользователя.
Проверить путь от корня (/) до точки монтирования диска. У пользователя firebird должно быть право на чтение каждого каталога. Просмотреть права на каталог можно по команде:
sudo ls -l
Примечание
Пользователь firebird относится к прочим пользователям.
Дать пользователю firebird права на чтение текущего каталога можно по команде:
sudo chmod o+r
Предупреждение
Второй способ следует использовать только в том случае, когда нужно монтировать диск в выбранную папку, либо когда нельзя изменять точку монтирования.
Сохранение кадров на диск🔗
В настройках сохранения кадров на диск (по расписанию, в ответ на системное событие, либо по команде пользователя) необходимо указывать полный путь к каталогу, в который будут сохраняться кадры.
Предупреждение
Сохранение кадров разрешено на любой диск, кроме системного.
Если кадры не сохраняются, нужно убедиться, что выбранный для сохранения диск не является системным (см. раздел Автоматическое монтирование дисков при запуске сервера выше).
Например, для сохранения кадров на архивный диск потребуется узнать полный путь до него при помощи команды:
ls -la /mnt/
В списке будет каталог с названием UUID диска:
Далее необходимо создать каталог для сохранения кадров, например camframes:
sudo mkdir /mnt/1aa5a91e-4456-4e6e-842e-3ef45946581e/camframes
Получившийся путь добавить в настройки действия Сохранить кадр:
Доступ к камерам по доменным именам🔗
По умолчанию в 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