- Быстрая настройка резервного копирования под Linux и не только (UrBackup)
- Urbackup Server And Client
- Server Install
- Install a Web Proxy Frontend
- Server Firewall Rules
- Client Install
- Client Firewall Rules
- Client Uninstall
- Urbackup Administration
- Server Management Console
- Server Admin Password
- Server Config
- Server CLI
- Client Config
- Snapshot Configs
- Client CLI
- Mirroring the Backups
- Превращаем старый телефон на Android в резервный сервер с помощью UrBackup/Linux Deploy. Часть 1
- Список ограничений этой конфигурации
- Надежность и безопасность
- Требования
- Дополнительное оборудование (рекомендуется)
- Шаг 1. Установка Linux Deploy и развертывание Debian Buster
- Шаг 2. Установка сервера UrBackup
- Шаг 3. Подключение клиентов
- Продолжение следует.
- Советы
Быстрая настройка резервного копирования под Linux и не только (UrBackup)
Примерно год назад у меня возникла «острая» необходимость перевести систему резервного копирования данных в корпоративной сети на бесплатные рельсы. До этого использовался платный продукт от Symantec, по нему, конечно, много нареканий, но он работал, хоть и не всегда справлялся. Как обычно, все надо было сделать «вчера», и я приступил к поиску вариантов.
Для начала начал искать решение для резервного копирования файлов, очевидным решением было простая настройка скриптов на Linux по cron, но это не очень удобное и надежное решение, если серверов более одного(а у меня их около 50-ти) и структура достаточно динамична. Тем более если инфраструктура смешанная, Linux + Windows. Хотелось что-нибудь простое в дальнейшем обслуживании и извлечении самих копий, например, переложить восстановление пользовательских файлов на группу поддержки. Порывшись пару часов в интернете, я наткнулся на интересный проект UrBackup, он удовлетворял всем моим условиям.
Как операционную систему я выбрал CentOS 6 в конфигурации minimal, взять можно тут. Подробно на установке и первичной настройке останавливаться не будут, т.к. манулов по этой процедуре уже достаточно на Хабре. Перейдем к установке виновника топика UrBackup.
Предыдущие версии UrBackup приходилось собирать из исходников, но слава разработчикам, для последних версий появились репозитории для большинства популярных систем. Хотя собрать из исходников проблем не составляло, репозиторий сильно упрощает жизнь, особенно при обновлениях.
Тут мы подключаем репозиторий и устанавливаем собственно сервер. Далее, чтобы мы могли подключится к серверу из вне, нам необходимо поправить iptables:
Так же для серверов внутри сети отключаем selinux:
Отключаем selinux без перезагрузки:
Устанавливаем сервис в автозагрузку и запускаем:
Готово. Можно подключаться и настраивать.
Заходим по адресу. При желании выбираем язык и идем в настройки:
Тут для первичной настройки нам необходимо указать только путь для хранения бекапов. Не забываем нажать кнопку «сохранить» и мы можем переходить к настройке клиентов.
Для начала нам необходимо установить клиент на сервер, который мы хотим копировать. Клиент для Windows систем можно скачать с сайта разработчиков, но так как мы в данный момент рассматриваем linux-системы, рассмотрим установку на тот же CentOS 6:
Добавляем правила в iptables:
Не забываем отключить selinux, если, конечно, в нем нет необходимости. И можно добавлять клиента на сервер. Возвращаемся на сервер. Идем в раздел «статус»:
Вбиваем в поле «Имя/IP» IP-адрес сервера, с которого мы хотим бекапить данные, и нажимаем добавить. Ждем пару минут, пока клиент появится в списке.
Для клиента с GUI этого достаточно, настройки папок для копирования можно сделать прямо на клиенте, резервное копирование начнется по расписанию, но у нас минимальный Linux и мы ставили клиент без GUI, его, как впрочем и полноценного клиента, можно настраивать прямо с сервера.
Идем в настройки:
Выбираем наш сервер из списка и настраиваем «каталоги по умолчанию для бекапа».
Готово. Сервер настроен и работает. Во время работы мы видим нечто подобное:
Сервер работает на удивление быстро и очень компактно использует место на диске, используя подобие дедубликации на основе симлинков.
Это минимальная настройка сервера, при желании можно настроить авторизацию, архивацию, создание образов систем (Windows), резервное копирование через интернет и т.д. В дальнейших статьях планирую рассказать, как на этот же сервер настроить резервное копирование MSSQL и Exchange, если это, конечно, будет интересно читателям.
Источник
Urbackup Server And Client
General Information
Installing and configuring Urbackup server and client.
“UrBackup is an easy to setup Open Source client/server backup system, that through a combination of image and file backups accomplishes both data safety and a fast restoration time.”
Checklist
Server Install
Installing the Urbackup Server
Install a Web Proxy Frontend
Installing a Nginx web proxy frontend.
Server Firewall Rules
Port | Protocol | In/Out | Description |
---|---|---|---|
55413 | tcp | Incoming | FastCG for web interface (needed if no web proxy) |
55414 | tcp | Incoming | HTTP web interface (needed if no web proxy) |
55415 | tcp | Incoming | Internet clients connect for backups |
35623 | udp | Outgoing | Broadcast for client discovery |
35623 | tcp | Incoming | Broadcast for client discovery (maybe needed?) |
443 | tcp | Incoming | HTTPS Web Proxy (if used) |
80 | tcp | Incoming | HTTP Web Proxy (if used) |
Optional — Needed if not using web proxy
Optional — Support client backups over the internet
Web proxy http and https
Needed? — Incoming client discovery
Reload and list rules
Client Install
Installing the Urbackup client.
Client Firewall Rules
Port | Protocol | In/Out | Description |
---|---|---|---|
35621 | tcp | Incoming | Transfers during file backups |
35622 | udp | Incoming | Broadcasts for discovery |
35623 | tcp | Incoming | Server commands and image backups |
Client firewall ports
Reload and list rules
Client Uninstall
Urbackup Administration
Administrative tasks for Urbackup server and clients.
Server Management Console
Server Admin Password
The first time you navigate to the web console, all admin settings are accessible to the world.
To set an admin user and password:
Server Config
Some initial server config changes to make.
Login to the web console and navigate to “Settings”.
Server CLI
Various CLI commands on the Urbackup server.
Cleanup Commands
Client Config
Client side configuration options.
Snapshot Configs
Client side snapshot config can be changed after installation if desired
Client CLI
Some commands can be executed on the client side. All of these commands can also be executed via the Urbackup server web console.
Urbackup client control
Note: Some of these commands (such as browse and restore) require root privileges to work.
Mirroring the Backups
The backup location on the server can be rsync’ed to another location to create a backup of the backups.
This is useful if you were to attach removable storage to the server, run the rsync of the latest backups, and take the removable storage offsite.
Due to urbackup’s space saving methods, rsync’ing the most current backup with the correct rsync options will provide the most accurate mirror.
Источник
Превращаем старый телефон на Android в резервный сервер с помощью UrBackup/Linux Deploy. Часть 1
Сегодня я покажу вам, как запустить полноценный резервный сервер на рутованном телефоне Android с помощью UrBackup и Linux Deploy. Пластиковый мусор уже заполонил все вокруг, а в добавок к нему очередной глобальной эко-проблемой становятся еще и электронные отходы. Так зачем выбрасывать прекрасный, пусть даже потрескавшийся и поношенный, телефон?
К тому же этот старый телефон:
- Вероятно, даже не настолько стар (покупаете ли вы новый ПК каждые 1-2 года?).
- Возможно, снабжен 4-8 ядрами и
4Гб ОЗУ, а также определенно имеет встроенный ИБП.
Подключите к нему внешний винчестер, и он станет отличным кандидатом на резервную систему для всей домашней сети!
Предупреждение: это проект из разряда «потому что могу». И поскольку здесь мы все-еще работаем с Android, то, помимо ряда ограничений, нам также потребуется обойти несколько препятствий. Это решение станет не самым простым способом создания бэкапа для домашней сети, как и не лучшим вариантом использования UrBackup. И все же! Как только настройка будет завершена, вы получите очень простой способ управления резервными копиями для нескольких машин, а также добавления хранилища.
Список ограничений этой конфигурации
Надежность и безопасность
Linux Deploy создает для вашего экземпляра Linux контейнер chroot . По сути, это песочница, но когда вы даете Linux Deploy root-доступ, то расширяете размер песочницы, охватывая большинство закоулков системы телефона. Самая серьезная уязвимость будет исходить из рутованной ОС Android в связи с недостатком обновляемых патчей безопасности. Некоторые телефоны можно обновлять после получения root-доступа, но тогда после обновления придется делать рутинг повторно.
При условии, что вы отключаете все возможные разрешения и службы, а также избегаете использования интернета из ОС Android, поверхность атаки остается очень узкой (по сути, ограниченной любой оставшейся фоновой службой, не допускающей отключение). Чтобы сохранить устройство в безопасности, следует поддерживать актуальность экземпляра Debian с помощью apt update && apt upgrade и рассмотреть вариант установки антивируса, как и на любой другой сервер. И все же, эта конфигурация не отличается высокой безопасностью. Если вам нужна глубокая защита на каждом уровне домашней сети, то она вам не подойдет.
Постоянное подключение смартфона к сети может сократить срок службы батареи, но само по себе это не опасно. Вообще перезаряжать литиевые аккумуляторы вредно, но в телефонах используются контроллеры заряда, которые останавливают зарядку, когда батарея заполняется. (Подробнее об управлении питанием можно почитать здесь). Причиной же вздутия зачастую служит заводской дефект или чрезмерный нагрев. Если у вас б/у телефон, и вздутие батареи не наблюдается, то скорее всего брака в нем нет.
Для избежания перегрева устройства следует разместить его в хорошо вентилируемом месте, отслеживать загрузку сервера, а также использовать качественную зарядку. Если телефон вдруг нагреется до горяча, отключите его и подумайте об увеличении интервалов между бэкапами, чтобы снизить нагрузку. Если телефон горячий постоянно, то лучше будет подыскать для сервера другое устройство. Как и с любым обычным сервером, добавьте в список его периодического обслуживания аппаратные проверки.
Если вы все еще здесь, то вот наш план действий:
- Получить root-права на телефоне. Я не стану вдаваться в подробности по этому пункту, а просто направлю вас к инструкции Magisk (англ.), где все это подробно расписано.
- Установка Linux Deploy и развертывание Debian Buster.
- Установка UrBackup Server.
- Подключение клиентов.
Учтите, что в этом руководстве я буду принимать очень специфичные решения в отношении конфигурации, большинство из которых нацелены на наладку работы с Debian и Android в среде chroot .
Требования
В моем случае используется Pixel 4a (8ЦПУ/6Гб ОЗУ). Конкретная модель телефона большого значения не имеет, но при этом у каждой могут быть свои особенности. Если ваш телефон выпущен в течение последних пяти лет, то он наверняка имеет достаточные характеристики. Если же вы о них не знаете, то лучше уточните. Я рекомендую не менее 4 ЦПУ и 2 Гб ОЗУ. Этого должно быть достаточно для большинства домашних сетей, но вам нужно будет оценить требования в соответствии с планируемым объемом резервного копирования. Также учитывайте, что часть ресурсов будет забирать Android система хоста.
Опять же направлю вас к Magisk для рутинга телефона. Вот некоторые советы:
— Убедитесь, что используете файл boot.img , связанный с текущей версией загрузчика вашего телефона.
— Если устройство работает на Android 11, и процедура Magisk не сработала, понизьте версию ОС до Android 10 и повторите попытку. Я убил целый день, воюя с Android 11 на своем Pixel 4a.
— Если вы не хотите использовать именно Magisk, будьте ОЧЕНЬ осторожны с другими аналогичными инструментами. Как показывает практика, многие приложения на рынке оказываются шпионскими или вирусными. Могу посоветовать еще CF-Auto-Root, но скачивать этот инструмент нужно только с проверенного ресурса.
Дополнительное оборудование (рекомендуется)
Несмотря на то, что, в принципе, бэкапы можно сохранять на SD-карте, делать это НЕ желательно. SD-карты медленнее, менее надежны и не могут обрабатывать процедуру записи в течение длительного времени. Если вы планируете сделать резервную копию на SD-карту, то сразу имейте в виду, что в течение года она даст сбой (а при большом объеме данных даже в течение месяца).
Шаг 1. Установка Linux Deploy и развертывание Debian Buster
A. С рутованного телефона перейдите на GitHub и скачайте .apk пакеты для Linux Deploy и BusyBox. Установите эти приложения.
B. После установки откройте BusyBox. Выберите Install . По завершению обратите внимание, куда установилась BusyBox. В данном случае мы видим, что установка произведена в /system/xbin . Этот путь вам потребуется позже.
C. Откройте Linux Deploy и перейдите в настройки через иконку в нижнем правом углу.
c. Настройте следующее:
Если в дальнейшем вы не собираетесь расширять хранилище, то можете смонтировать внешнее блочное устройство здесь, добавив его путь в точки монтирования. Если же расширение хранилища в ваши планы входит, тогда вы можете подождать публикации Части 2, чтобы разбить его на разделы и отформатировать в логический том.
Все, что вы смонтируете здесь, будет непосредственно доступно при загрузке, но не будет доступно для разбиения по разделам и форматирования. Тем не менее учитывайте, что имя вашего блочного устройства ( /dev/block/sdX ) при перезагрузке телефона может измениться, в случае чего вам понадобится проверить/изменить конфигурацию. Если же вы смонтируете логический том, то его имя уже не изменится, и о проверке вам беспокоиться не придется.
Примечание: после того, как блочное устройство будет смонтировано, перед последующим физическим отключением его необходимо будет сначала размонтировать или отключить сервер. Отсоединение без размонтирования скорее всего приведет к утрате содержащихся на нем данных.
D. Вернитесь обратно на экран приветствия и выберите верхнее левое меню. Далее выберите Settings и промотайте вниз до PATH variable . Именно здесь нужно установить путь установки BusyBox из шага 1.B. После установки PATH variable выберите Update ENV .
E. Вернитесь на экран приветствия и выберите верхнее правое меню. Жмите Install . Перед вами отобразится живой лог установки. По завершению в конце лога будет прописано deploy . Выберите START в нижнем левом углу экрана. Теперь у вас на телефоне запущен сервер Debian!
Шаг 2. Установка сервера UrBackup
A. Подключитесь к только что развернутому серверу по SSH.
IP-адрес будет тот же, что и у телефона, порт будет 22, а авторизоваться вы сможете с помощью учетных данных, установленных в шаге 1.с. Оставшаяся часть руководства предполагает, что вы авторизованы как корневой пользователь. Свой IP можете увидеть, открыв Linux Deploy:
B. Обновите систему:
C. Скачайте пакет .deb для UrBackup:
Это последняя стабильная версия на момент написания. Возможные обновления можете посмотреть на странице скачивания.
D. Установите пакет:
В ходе установки система спросит, где должна размещаться резервная директория.
Запомните ее путь для следующего шага. Если вы уже смонтировали хранилище в шаге 1.c, установите в качестве этого пути точку монтирования.
E. Создание директории для бэкапа.
В этом примере я установлю директорию как /mnt/backup . Если вы смонтировали хранилище ранее, то директория уже будет существовать. Если же нет, создайте ее:
(Так UrBackup сможет производить запись в эту директорию.)
F. Установка скрипта запуска.
В среде chroot мы не сможем вызывать systemd , поэтому потребуется запускать эту службу вручную:
Но вместо того, чтобы вводить это постоянно, мы просто создадим скрипт:
Скопируйте его в файл:
Сохраняемся и выходим.
Это приведет к появлению лога запуска сервера. Нажатие CTRL-C остановит службу, поэтому откройте еще одну сессию SSH.
Для остановки службы нужно будет просто ее завершить:
H. Добавление cronjobs .
Поскольку мы не можем «активировать» службу UrBackup стандартным способом, то установим задачу cron для запуска при загрузке. В добавок к этому, если вы в дальнейшем отключите внешнее хранилище или перезагрузите телефон, то разрешения для резервной директории могут отмениться. Чтобы гарантировать их установку при загрузке мы добавляем cronjobs :
Добавьте эту задачу:
Сохраните и выйдите.
I. Перейдите в веб-интерфейс.
В браузере перейдите на порт 55414 сервера: YOUR_SERVER_IP:55414
Шаг 3. Подключение клиентов
A. В нижней правой части окна состояния кликните Add new client :
B. Выберите Add new Internet client/client behind NAT и введите имя клиента:
Им должно быть имя хоста нового клиента.
C. Установка клиента.
- Для клиентов Windows:
Скачайте установщик по ссылке «Download preconfigured client installer for Windows» и следуйте его инструкциям.
- Для клиентов Linux:
Обратите внимание на «Default authentication key» вверху. Он вам понадобится.
Авторизуйтесь на клиенте и запустите скрипт установки (НЕ запускайте скрипт, предоставленный сервером):
(Проверьте наличие последних версий клиентов здесь).
В процессе установки скрипт попросит выбрать механизм сохранения снимков состояния. Введите 2 для «LVM — Logical Volume Manager snapshots»:
На телефоне с Android единственной реальной альтернативой будет Dattobd. BTRFS в данном случае не поддерживается, а пренебрежение механизмом сохранения снимков системы очень нежелательно (вам придется останавливать на время резервного копирования все службы, взаимодействующие с файлами, выбранными для бэкапа).
Я попробовал использовать dattobd, но постоянно сталкивался с разными ошибками. Учитывайте, что вам нужно будет установить dattobd и на сервер, и на клиентов. При этом сервер и клиенты должны быть с ним совместимы. Для установки dattobd на устройство Android (ARM64) вам придется скомпилировать исходный код, в чем я не преуспел. Тем не менее у вас может оказаться другой случай, в зависимости от модели телефона или используемого дистрибутива. Мне также не удалось установить его в Ubuntu 20.10, при том что с Ubuntu 20.04 все получилось отлично.
По завершению установки убедитесь, что клиент запущен:
Если не запущен, запустите:
В завершении подключите клиента к серверу:
Убедитесь, что именем хоста, настроенным на шаге 3.B, является YOUR_CLIENT_NAME , а ранее сгенерированным сервером ключом YOUR_DEFAULT_AUTHENTICATION_KEY .
D. Настройка сервера.
Вернитесь в веб-интерфейс. Здесь вы можете обнаружить, что клиент не подключен. Кликните Settings в верхней панели навигации:
В Settings перейдите на вкладку Internet и убедитесь, что установлено следующее:
Если у вас все клиенты локальные, то можете убрать галочки Do image backups over the internet и Do full file backups over the internet .
Промотайте вниз и кликните Save .
E. Настройка директории резервного копирования:
Здесь же в Settings кликните Client settings . Отметьте Separate settings for this client , а в строке Default directories to backup вкладки File Backups укажите директории для резервного копирования.
Можно добавить несколько директорий через ; .
Здесь также настравиваются интервалы резервного копирования.
Кликните Save внизу.
Для клиентов Linux это также можно настроить из командной строки клиента:
F. Вернитесь в веб-интерфейс.
Теперь клиент должен быть подключен. В блоке File backup status может отобразиться No paths to backup configured , но это нормально. Такое сообщение будет отображаться до завершения первого резервного копирования. Также имейте ввиду, что если вы подключили клиента Linux, то бэкапы образов поддерживаться не будут. Тем не менее вы можете просто сделать резервный образ с клиента Linux и указать директорию этих образов для резервного копирования сервером.
Можно запускать первое резервное копирование!
Продолжение следует.
Если вы уже подключили хранилище и довольны конфигурацией, то на этом все. Если же вы хотите добавить хранилищу гибкость, то жду вас в Части 2. LVM (менеджер логических томов) позволяет добавлять или удалять хранилище без необходимости переноса данных на другое устройство хранения. Вы можете просто добавить нужный объем хранилища или удалить его неиспользуемую часть, которую хотите задействовать где-то еще. В Части 2 мы в основном будем работать с LVM. Это хоть и не сложно, но все равно является определенным процессом.
Советы
1. Отключите разрешения для всех служб, для которых это возможно. Разрешения кроются в различных местах настроек, так что уделите время их поиску. Также отключите или деинсталлируйте все приложения, какие можете. Это позволит снизить общую нагрузку на ОС Android.
2. Будьте осторожны с обновлениями Android. При успешном выполнении они скорее всего отменят root-доступ к устройству, и рутинг придется делать повторно. Если же вы хотите произвести обновление, то сохраните резервную копию файла .img , который Linux Deploy создала для контейнера Linux. Если в итоге вы полностью зачистите телефон, то достаточно будет переустановить Linux Deploy и сопоставить ее с резервным образом.
3. Поскольку вы не сможете обновлять телефон часто, то следует ограничить использование ОС Android. Не заходите в браузеры и не скачивайте лишние приложения, чтобы ограничить связь устройства с интернетом. Вы можете (даже рекомендуется) поддерживать версию Debian обновленной и использовать интернет по необходимости.
1. Когда телефон блокируется, Android переводит его в режим простоя. Это замедляет производительность ЦПУ. Чтобы экран был активен постоянно, перейдите в настройки приложения Linux Deploy и отметьте пункт Wake Lock . Найти его можно, нажав на верхней левой иконке настроек и перейдя в Settings . Обратите внимание, что эта функция действует только, когда приложение открыто.
2. Если вам потребуется перезагрузить образ контейнера, просто убедитесь, что расположение целевого образа ( .img ) установлено в Installation path в Properties . Найти этот пункт можно через нижнюю левую иконку настроек. Убедитесь, что указанный в свойствах дистрибутив совпадает с дистрибутивом файла .img . Если он не совпадает, Linux Deploy перезапишет файл .img с настройками из Properties . Затем вернитесь на основной экран и выберите из верхнего правого меню Install .
Для деинсталляции сервера UrBackup выполните:
Для деинсталляции клиента UrBackup выполните:
Если вы удалите клиента из веб-интерфейса сервера, то увидите уведомление «This client is going to be removed… Clients are removed during the cleanup in the cleanup time window». Это означает, что он еще не удален, и вам придется подождать, пока сервер не запустит плановую очистку, в ходе которой и произведет удаление. Такой вариант может вас не устроить, если вы работаете над устранением неисправности, и требуется неотложное повторное добавление клиента. Для ручной очистки остановите службу UrBackup из CLI:
И снова запустите UrBackup:
1. «Volume group „root“ not found»
Если вы делаете бэкап директорий внутри контейнера, то в логах сервера может возникнуть ошибка «Volume group „root“ not found», и создание резервной копии также закончится с ошибками. Ничего страшного, если ваши бэкапы остаются нетронутыми. Так как клиент UrBackup запускается из контейнера, он не сможет проследить свой путь до корня хоста.
2. Мгновенный сбой; без логирования ошибок
Если резервное копирование дает мгновенный сбой, то скорее всего проблема с подключением. Проверьте машину клиента и убедитесь, что UrBackup на нем работает без сбоев. Логи клиента располагаются в /var/log/urbackup.log . Также можете проверить service urbackupclientbackend status . Если вы не можете определить причину проблемы, деинсталлируйте и повторно установите клиента.
3. «ERROR: No permission to access [Backup Directory]»
Если вы смонтировали внешнее устройство хранения напрямую и столкнулись с ошибками разрешений, то вам может потребоваться запустить службу от лица root-пользователя. Сначала проверьте разрешения директории бэкапа для пользователя и группы. Если вы не можете изменить разрешения для пользователя “urbackup” и группы “urbackup”, как в шаге 2.E, то сможете определить запуск UrBackup от лица root-пользователя. Для этого измените последнюю строку файла конфигурации ( /etc/default/urbackupsrv ) с urbackup на root и перезапустите сервер.
4. Ошибки ввода/вывода
Если вы не отсоединяли внешнее устройство хранения и получили ошибки ввода/вывода в процессе резервного копирования, то возможно это устройство повреждено или работает со сбоями. Если перезапуск телефона не решает проблему, скорее всего время подыскать новое блочное устройство.
5. Прочие ошибки
Если вы отклонились от руководства и не выбрали в качестве механизма резервного копирования “LVM”, убедитесь, что клиент и сервер совместимы с выбранной вами альтернативой. К примеру, если на клиенте установлен dattobd, а на сервере нет, резервное копирование провалится.
Остались вопросы по UrBackup? Нужна помощь? Обратитесь к полноценному руководству Administration Manual. Это щепетильный проект, и для каждого телефона возникнут свои сложности, так что, помимо обсуждения в комментариях, можете почитать форумы сообщества UrBackup.
Источник