- UniFi — Как восстановить конфигурацию, для которой имеется резервная копия?
- UniFi Video — Опции резервного копирования
- Перед тем, как начать
- Найдите папку, в которой хранятся Ваши записи
- Для Windows
- Для Linux / устройства NVR
- Используйте утилиту rsync
- UniFi — Troubleshooting Issues with Controller Backup Files
- Table of Contents
- Introduction
- Troubleshooting Steps
- 1. Try a different browser.
- 2. Does the problem occur when using webRTC, direct connection, or both?
- 3. Check Server.log logging.
- Debug Logging for server.log
- 4. Database Corruption
- UniFi Video — Recording Backup Options
- Table of Contents
- Introduction
- Locating the Recordings
- Windows
- Method 1 (Recommended):
- Method 2 (Alternate):
- Linux/Hardware NVR
- Leveraging rsync
UniFi — Как восстановить конфигурацию, для которой имеется резервная копия?
Существует три способа восстановления с резервной копии. Предпочтительный метод — использовать файл .unf, сгенерированный в соответствии с настройками резервного копирования. Альтернативный вариант подойдет, если у Вас есть копия каталога /data — тогда восстановление также возможно.
Если у Вас есть файл .unf (резервная копия), то Вы можете либо восстановить ее с активного контроллера (Settings>Admin>Restore) (Настройки>Администратор>Восстановить), либо с первой страницы мастера установки (см. поле Browsе (Перейти в папку) внизу).
Если у Вас есть оригинальная папка /data (со всеми вложенными папками и контентом внутри них), Вы можете использовать следующую процедуру:
- Остановите контроллер;
- Убедитесь, что java и mongod не работают (под Windows mongod остается в памяти, поэтому лучше выполнить последующие шаги в безопасном режиме);
- Скопируйте новый файл хранения ключа (находится в новой папке /data) в папку /data старой резервной копии, чтобы переписать старый файл;
- Удалите новую папку /data;
- Скопируйте старую папку /data в новую установку UniFi;
- Перезапустите контроллер.
Расположение папки Data
MSW: Vista+: C:\Users\username\Ubiquiti UniFi\data XP: C:\Documents and Settings\username\Ubiquiti UniFi\data
Linux: Актуальная папка: /var/lib/unifi/ Папка по псевдониму (алиасу): /usr/lib/unifi/data
Если файл .unf большой, может возникать ошибка Failed to Start (Не могу начать) при импорте или миграции. Если Вы располагаете временем, то можете дождаться завершения, а затем попробовать войти в контроллер. Он может импортироваться без каких-либо проблем. Если этого не произошло, может потребоваться вернуться к оригинальной версии контроллера, запустить сценарий удаления, сделать новую резервную копию, а затем либо очистить и установить резервную копию, либо выполнить заместительное обновление.
Мы пересматриваем управление базой данных, чтобы облегчить или устранить эту проблему. Данная статья будет позднее обновлена, чтобы описать, что из этого вышло.
UniFi Video — Опции резервного копирования
В данной статье описаны различные опции резервного копирования записей UniFi Video — для Windows, и для Linux (аппаратное устройство NVR).
Перед тем, как начать
Перед тем, как двигаться дальше, хотим предупредить Вас о существовании нескольких «подводных камней» (см. ниже).
Видеофайлы имеют большие размеры. Резервное копирование за пределы площадки будет затруднительным без достаточно большой скорости выгрузки и может потребовать на обеих сторонах широкополосного доступа (то есть для выгрузки с площадки, на которой установлен NVR и загрузки в хранилище данных за пределами площадки). С этой точки зрения, одна камера UVC-G3 имеет максимальную скорость передачи данных 6 мбит/с. Если запись постоянно ведется на максимальной скорости передачи с одной камеры, необходимо по меньшей мере 6 мбит/с при выгрузке, чтобы получить резервную копию без потерь данных.
Для хранения резервной копии нужно хранилище данных такого же размера, что и копия (отношение 1:1). Если на устройстве NVR максимальный объем записи составляет 1 ТБ, то для резервного копирования Вам потребуется хранилище данных такого же размера.
Могут быть ситуации, когда Вы будете записывать данные быстрее, чем идет перемещение данных при резервном копировании. Перед тем, как начинать резервное копирование, рассмотрите скорости работы сети и протоколы передачи данных. И снова, учитывая пункт #1, получается, что при постоянной записи с десяти UVC-G3 на полной скорости, на площадке устройства резервного копирования потребуется пропускная способность не менее 60 мбит/с.
IOPS, IOPS и еще раз IOPS (число операций ввода-вывода в секунду). Устройство хранения данных может писать и читать данные с определенной скоростью. Когда идет резервное копирование, скорость чтения значительно снижается. Рекомендуется использовать утилиты, ограничивающие полосу частот, но при этом надо учитывать пункт #3; необходима тонкая балансировка.
Найдите папку, в которой хранятся Ваши записи
Безотносительно к используемой операционной системе (ОС), Вы можете быстро отыскать местоположение Вашего хранилища данных, посмотрев журнал в UniFi Video:
- Щелкните Settings (Настройки) в левом нижнем углу окна.
- Щелкните NVR Settings (Настройки NVR) в левом верхнем углу окна.
- Щелкните вкладку Config (Конфигурация) (выбрана по умолчанию)
- Путь к соответствующей папке хранилища — значение опции “Recording Path” (Путь для записи) в поле UniFi Video Recording Backup Options (Опции записи при резервном копировании UniFi Video).
В Windows задано по умолчанию: C:\ProgramData\unifi-video\videos
В Linux задано по умолчанию: /var/lib/unifi-video/videos
В airVision-C/UVC-NVR по умолчанию задано: /srv/unifi-video/videos
Для Windows
Несмотря на то, что в нынешней версии Windows, к счастью, имеется возможность установить родной NFS-клиент, Вам следует рассмотреть использование диска с USB 3.0 (предполагается также, что Ваш сервер имеет не менее одного порта USB 3.0). NFS-клиент существенно быстрее в сравнении с Samba (служба совместного использования файлов Windows), но Microsoft не включает этот протокол в версии Windows с урезанным функционалом. Например, в Windows 7, 8.1 и 10, чтобы присутствовал NFS-клиент, необходима лицензия уровня предприятия (Enterprise) (для Windows 10 — Enterprise/Pro). Samba обладает наиболее дружественным пользовательским интерфейсом, проста в установке, но накладывает некоторые ограничения на скорости передачи.
Простой метод для Windows:
- Смонтируйте Ваше устройство резервного копирования.
- Используя утилиту резервного копирования, скопируйте записи на устройство резервного копирования.
- Альтернативный метод для Windows (не такой простой):
- Смонтируйте Ваше устройство резервного копирования.
- Создайте пакетный сценарий, копирующий содержимое папки с записями в хранилище резервных копий.
- Для запуска сценария в желаемые периоды времени используйте Task Scheduler (Планировщик задач).
Пакетный сценарий должен выглядеть примерно так:
xcopy /E C:\ProgramData\unifi-video\videos\* “D:\UFV Backup\”
Для Linux / устройства NVR
К счастью, в дистрибутивах Linux имеется и NFS, и iSCSI (может потребоваться их установка). Имеется несколько руководств, в которых приведена начальная информация по установке:
Если Вы делаете это на airVision-C or UVC-NVR, то затем Вам потребуется выполнить шаг #13 из первой статьи или шаг #12 из второй статьи.
Если Вы делаете это на машине под Linux, но не на airVision-C или UVC-NVR, то затем Вам потребуется использовать /etc/fstab. В типичном случае, монтирование fstab выглядит подобно следующему:
/path/to/your/partition /backup/mount/path auto defaults,nodiratime,noatime,errors=continue 0 2
Используйте утилиту rsync
В Linux имеется утилита для копирования файлов, которая называется rsync. Копирование происходит достаточно быстро, команда имеет вид:
rsync -rltzhu —progress —delete /source/recording/path /destination/backup/path
Флаги, используемые в данной команде описаны на странице руководства rsync .
Здесь использованы ключи -r и —delete. Команда -r заставляет rsync выполнять копирование рекурсивно (в подпапки), а —delete заставляет rsync удалять файлы на назначении, которые не существуют в источнике. Команда —delete важна, в частности, если Вам требуется очищать старые данные. При отказе от использования —delete хранилище резервных копий быстро заполнится и в последующем не удастся выполнить синхронизацию файлов.
Рекомендуется, чтобы Вы выполнили эту команду подряд несколько раз до тех пор, пока время передачи не станет минимальным. Затем Вы можете с помощью планировщика запускать синхронизацию файлов (в определенные интервалы времени). В Linux это осуществляется с помощью crontab. Чтобы отредактировать crontab, выполните команду:
Затем введите строку внизу crontab.
В примере ниже, синхронизация файлов будет выполняться через каждые 5 минут:
*\5 * * * * rsync -rltzhu —delete /source/recording/path /destination/backup/path
В следующем примере синхронизация файлов будет выполняться каждую ночь, в 2 часа ночи.
0 2 * * * rsync -rltzhu —delete /source/recording/path /destination/backup/path
Вы можете, конечно, изменить частоту выполнения этой команды. Первый символ-разделитель отделяет минуты, второй — час, третий — день месяца (например, 15 будет обозначать 15-й день месяца), четвертый — месяц (например, июнь обозначается 6), пятый — день недели (например, 0 — воскресенье, 6 — суббота).
Могут (а чаще всего и должны) использоваться символы-заместители. Во втором примере: минута = 0, час = 2, каждый день месяца, каждый месяц, каждый день недели.
Другой пример использования символов- заместителей — периоды работы при введенных ограничениях. В первом примере указано “*\5” для минут. Это означает, что выполнение будет происходить через каждые 5 минут. Подобным образом, настройка для часа могла бы иметь вид “*” — выполнение каждый час или “*\2” — выполнение через каждые два часа.
Имеются также ярлыки, например, “@daily” представляет собой псевдоним для “0 0 * * *” (другими словами — каждый день в полночь). Более подробное объяснение настройки cron см. в этом руководстве.
Альтернатива для rsync в Linux:
DRBD (обеспечивает создание точной копии всего разделения и синхронизацию в реальном времени).
UniFi — Troubleshooting Issues with Controller Backup Files
This article provides steps on how to troubleshoot and solve issues resulting in an error that appears when manually creating a backup file from the Maintenance section of the UniFi Network Controller. Some of the steps in this article can also help solve issues such as the Controller not creating auto-backup files at the time they are scheduled.
Table of Contents
Introduction
The error that the Controller produces when it can’t create a backup file can vary depending on the observed location of logging. See examples below:
Web UI
Server.log
The logging in the web UI will not show up for auto-backup, only when manually attempting and failing to create a backup.
Troubleshooting Steps
1. Try a different browser.
Before progressing to the steps below, try using a different browser to see if the problem resides with the browser or with the UniFi Network Controller host. Chrome is Ubiquiti’s preferred browser.
It can also be useful to use the developer console found on most modern browsers. This console can be found under Developer Tools (Ctrl + Shift + J on Windows or Linux/Cmd + Opt + J on macOS).
2. Does the problem occur when using webRTC, direct connection, or both?
There are three options available when launching the Controller from the UniFi Cloud Access Portal. After clicking on a Controller in the main list, the Sites Overview panel will pop out with the different possibilities. When selecting the «Launch using Cloud» option, WebRTC is used. When selecting hostname or IP of Controller, a direct connection is used. Try creating the backup on both types of connections if possible. If the issue is persistent on both, move on to the next step.
3. Check Server.log logging.
To see the logs that are printed to the server.log file on the Controller, navigate to Insights > Controller Logs.
As logs populate the file, line by line the output is displayed in this area. To fetch more logging a single log must first populate the buffer. To download the file for viewing or archiving select Download Logs. As mentioned above, if the backup is failing this is the area that should give the most information as to why the backup is failing.
Debug Logging for server.log
Navigate to Settings > Maintenance > Services to adjust the system logging level if more output is needed to diagnose the issue.
4. Database Corruption
In most cases, this will be the issue that prevents the Controller from creating a backup. Database corruption will cause MongoDB to deliver errors when trying to read corrupt or invalid entries.
For more instructions on how to repair a database see our article here.
UniFi Video — Recording Backup Options
This article reviews the different options on how to backup the UniFi Video recordings, for both Windows and Linux (Hardware NVR).
Table of Contents
Introduction
When planning on backing up recordings, there are a number of details that should be taken into account:
- Videos are large files. Off-site backups will likely be too cumbersome without a sufficient upload speed and may be subject to bandwidth caps on both sides, meaning the upload bandwidth of the NVR site and the download bandwidth of the off-site storage. A single UVC-G3 camera will need at least 6 Mbps of upload if it’s recording full-time at maximum bitrate, to perform a constant backup.
- A 1:1 ratio of storage for backups is required. If expecting 1TB of recordings in the NVR device, 1TB of storage at the backup location will be needed as well.
- There may be situations where the cameras are recording faster than a backup can move data. Consider network speeds and transfer protocols prior to implementing the backup.
- A storage device can only read and write at a certain speed. Performing a backup will degrade the reading speed substantially. It is recommended to make use of bandwidth limiting utilities, keeping in mind the previous point: it will be a delicate balance.
Locating the Recordings
On any operating system, the storage location will be found by logging into UniFi Video and following these steps:
- Click Settings in the lower left-hand corner.
- Click NVR Settings in the upper left-hand corner.
- Click the Configure tab (selected by default).
- The Recording Path is the value for UniFi Video Recording Backup Options “Recording Path”.
The Default location of recordings are:
- Windows Default: C:\ProgramData\unifi-video\videos
- Linux Default: /var/lib/unifi-video/videos
- airVision-C/UVC-NVR Default: /srv/unifi-video/videos
Windows
Unless the Windows version used has the ability to install a native NFS client, a USB 3.0 drive is recommended. The NFS client is significantly faster when compared to Samba (Windows file sharing), but Microsoft has not adopted this protocol in recent Windows versions.
Method 1 (Recommended):
- Mount the backup device.
- Use a backup utility to copy the recordings to the backup device.
Method 2 (Alternate):
- Mount the backup device.
- Create a batch script that will copy the recording directory to the backup storage.
- Use Task Scheduler to run the script at your desired intervals .
A batch script would resemble something like:
xcopy /E C:\ProgramData\unifi-video\videos\* “D:\UFV Backup\”
Linux/Hardware NVR
Linux offers NFS and iSCSI out of the box. Here are a couple guides to get started:
For any other Linux machines, make use of /etc/fstab . A typical fstab mount would look like this:
Leveraging rsync
Linux has a utility for copying files called rsync. This is what that would look like:
For a reference of what these flags do, please see the rsync manual page. The keys here are the -r and —delete . Command -r tells rsync to copy recursively (sub directories) and —delete tells rsync to delete files on the destination that do not exist on the source. Command —delete is particularly important if you need to clear old data. Failing to use —delete will inevitably fill up your backup location causing future syncs to fail.
It is recommended to run this command back-to-back until the transfer time is minimal. Then the sync to run on an interval can be scheduled. This is done via crontab in Linux. To edit the crontab, follow these steps:
2. Enter a line at the bottom of the crontab.
The following example will sync files every 5 minutes:
*\5 * * * * rsync -rltzhu —delete /source/recording/path /destination/backup/path
The following example will sync every night at 2AM:
0 2 * * * rsync -rltzhu —delete /source/recording/path /destination/backup/path
The frequency in which the command runs can be tweaked by editing the first 5 characters. The first character is minute, the second is hour, the third is day of month (i.e. the 15 would be the 15th day of the month), fourth is month (i.e. June is 6), and fifth is the day of the week (i.e. 0 is Sunday, 6 is Saturday). Wildcards (asterisks, *) should be used in most cases. In the second example, it says minute = 0, hour = 2 (or 2:00 am, to be specific), every day of the month, every month, and every day of the week.
Another example for wildcards is running intervals within those constraints. The first example has “*\5” for minutes, this means run every 5 minutes. A similar setup for hours would be “*” in the hour place to run every hour or “*\2” to run every two hours. There are also shortcuts such as “@daily” which is really an alias for “0 0 * * *” (this is Midnight every day). For a more thorough explanation of cron for your customization purposes, please see this guide.
Alternatives to rsync in Linux:
- DRBD (provides an exact replica of the entire partition as a live sync)
- lsync