- Быстрая настройка резервного копирования под Linux и не только (UrBackup)
- Бэкап Linux и восстановление его на другом железе
- 1. Создание бэкапа
- Восстановление бэкапа на другом железе
- Запасливый пингвин. Программы для резервного копирования в Linux
- Содержание статьи
- Народные мудрости
- WARNING
- Тем, кто любит помощнее
- rsync
- luckyBackup
- Back In Time
- Bacula
- Продолжение доступно только участникам
- Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Быстрая настройка резервного копирования под 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, если это, конечно, будет интересно читателям.
Источник
Бэкап Linux и восстановление его на другом железе
Я работаю в организации с маленьким штатом, деятельность тесно связана с IT и у нас возникают задачи по системному администрированию. Мне это интересно и частенько я беру на себя решение некоторых.
На прошлой неделе мы настраивали FreePBX под debian 7.8, нанимали фрилансера. В процессе настройки оказалось, что сервер (да, я так называю обычный PC) не хочет грузится с HDD при подключенных USB 3G модемах, которые мы используем для звонков на мобильные, колупание BIOSа не помогло. Непорядок. Решил, что нужно перенести его на другую железяку. Так появилось сразу две связанные задачи:
- сделать бэкап сервера;
- восстановить бэкап на другом железе.
Гугление не дало внятных ответов, как это сделать, пришлось собирать информацию кусками и пробовать. Всякие acronis’ы отбросил сразу, ибо не интересно.
Опыт общения с linux-системами у меня небольшой: настройка VPN сервера на open-vpn, ftp-сервера и еще пара мелочей. Сам себя я характеризую как человека умеющего читать маны и править конфиги 🙂
Ниже я описываю свой частный случай и почему я поступил именно так. Надеюсь, новичкам будет полезно, а бородатые админы улыбнутся вспомнив молодость.
Начинаем копать теорию:
Второй способ требует наличия внешнего жесткого диска объемом не меньше раздела, который архивируем. Да и что с ним потом делать, непонятно, хранить на полочке? Остановился на tar, чуть сложнее в реализации, нужно будет создать MBR, но время создания/восстановления архива существенно меньше, хранить бэкап проще, полтора гига можно закинуть в облако и скачать, когда будет нужно. Записывать его можно на ту же live-флэшку, с которой буду грузиться.
Итак, план действия:
1. Создание бэкапа
Грузимся с live-флэшки, у меня это debian-live-7.8.0-amd64-standard.
Переключаемся на root:
Монтируем раздел, который будем архивировать, у меня это sda1, чтобы случайно не наломать дров, монтируем только для чтения. Посмотреть все свои разделы можно при помощи команд ls /dev | grep sd или df -l
Наша флэшка уже примонтирована, но в режиме только чтения, нужно перемонтировать для чтения-записи, чтобы писать туда бэкап.
Все готово для создания архива
Здесь у нас параметры: c — создать архив, v — выводить информацию о процессе, z — использовать сжатие gzip, p — сохраняем данные о владельцах и правах доступа, f — пишем архив в файл, путь к файлу, —exclude — исключаем из архива каталог (я исключил каталоги с записями разговоров и каталог с бэкапами FreePBX), /mnt/ — каталог, который архивируем.
Ждем… у меня вся подготовка и создание архива заняли 10 минут. Будь флэшка быстрее, уложился бы в 7-8 минут.
Складываем архив в надежное место за пределами офиса.
Восстановление бэкапа на другом железе
2. Размечаем диск, создаем файловую систему
Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.
Переключаемся на root:
Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.
Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.
Cоздаем файловую систему на первом разделе.
3. Распаковываем архив.
Монтируем отформатированный раздел
Распаковываем архив прямо с флэшки
Параметр —same-owner — сохраняет владельцев у распаковываемых файлов, x — извлекаем из архива, v — выводить информацию о процессе, p — сохраняем права доступа, f — указываем файл, который распаковываем, C — распаковываем в категорию.
4. Создаем MBR на новом диске.
Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:
Переключаемся на новую систему используя chroot:
Делаем swap-раздел для новой системы:
Подключаем его же:
Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:
Открываем второй терминал (Alt+F2) под root:
И видим текущие UUID разделов.
Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.
Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:
На чистый диск должно встать без ошибок. Обновляем информацию из fstab:
Возвращаемся в Live-систему:
Размонтируем все каталоги:
Если вылазят процессы, которые используют эти каталоги, убиваем их используя fuser.
Все, поехали. Грузимся с жесткого диска:
Здесь статья должна была закончиться, но у меня возникли проблемы с подключением к интернету. Сервер видит сеть, видит компьютеры в ней, но в интернет не ходит… а это как бы важно для телефонии.
5. Тестирование и устранение неполадок.
Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.
Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:
Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.
Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:
Подключаем донглы, проверяем, все работает.
Спасибо за внимание.
Источник
Запасливый пингвин. Программы для резервного копирования в Linux
Содержание статьи
Народные мудрости
На базе Linux любят разворачивать NAS- и FTP-серверы. Для таких систем неплохо бы иметь резервную копию как минимум конфигурации, а в идеале еще и данных. Не стану читать очередную лекцию, насколько важно озаботиться резервным копированием до того, как с основным носителем информации приключится беда. Но повторю одну притчу из айтишного фольклора: люди делятся на тех, кто делает бэкапы, и тех, кто их еще не делает. С основами создания резервных копий ты можешь ознакомиться, например, в упомянутой статье, а мы не будем тратить время на теорию и сразу перейдем к делу.
WARNING
В одной статье всех существующих решений для резервного копирования не обозреть, поэтому мы рассмотрели и сравнили наиболее известные из них. Если тут нет твоей любимой программы — не обессудь.
Самое что ни на есть хардкорное резервное копирование данных с носителей можно выполнить командой dd . И самое прикольное, что можно примонтировать получившийся образ и работать с ним как с обычным разделом в режиме чтения и записи. Никаких тебе DAEMON Tools или Alcohol для эмулирования дисковода.
Снимаем слепок устройства /dev/sdb1 и монтируем его
Подобные способы подкупают своей простотой и удобством создания резервной копии. К тому же не надо беспокоиться, что слетят права и прочие атрибуты файлов или испортятся символические ссылки. Еще можно примонтировать, например, Яндекс.Диск и сразу закидывать бэкапы на него. Но это кажется удобным лишь до поры до времени, пока не требуется ставить создание бэкапов на поток, а нужно лишь снять образ с флешки или диска. Для более серьезных задач в Linux уже существует достаточное количество утилит, делающих процесс резервного копирования с последующим восстановлением почти таким же простым (ну, после некоторой подготовки), как в винде или в macOS, поэтому вместо изобретения еще одного велосипеда давай-ка лучше изучим готовые.
Тем, кто любит помощнее
Ты гик или админишь что-то посложнее сети из двух с половиной хостов? Тогда специально для тебя мы рассмотрим сперва исконно линуксовые, сложные и не всегда понятные с первой попытки программы для создания бэкапов. Начнем, пожалуй, с классики.
rsync
Ходят легенды, что rsync, появившаяся в 1996-м и даже портированная в 1999-м на NT, была разработана для замены rcp (remote copy). А имя ее произошло от словосочетания remote synchronization, для чего она и была предназначена.
Утилита включена во все популярные дистрибутивы Linux; существуют версии для систем BSD, macOS и Windows. Эта свободная программа с интерфейсом командной строки предоставляет широкие возможности синхронизации локальных и удаленных файлов с использованием собственного алгоритма, уменьшающего объем пересылаемого трафика. Она применяется для создания зеркал и резервных копий — полных, инкрементных и при желании (вот один из гайдов) дифференциальных. Для автоматизации можно настроить расписание с помощью задач cron . При передаче на удаленные хосты rsync умеет использовать разный транспорт, в том числе rsh, SSH и сырые сокеты с собственным протоколом rsync. Можно указывать, какие файлы не следует синхронизировать, перечислив их имена, размер и не только; можно ограничивать скорость передачи данных и использовать множество других настроек.
Вот так один маленький слеш в конце пути-источника решает, будет ли создаваться папка в назначении
Rsync позволяет создать демон, своего рода удаленный сервер rsync, который также можно сконфигурировать совершенно по-разному в зависимости от поставленной задачи. Он может принимать удаленные соединения анонимно, по паролю и без, с шифрованием по SSH на заданном порте с использованием ключей, с разными конфигурациями для разных пользователей, создаваемых в рамках rsync. При всем этом для успешного общения двух узлов демон rsync необязателен: разница между использованием демона и работой без него разъясняется на сайте проекта.
Опции настройки демона описаны в man rsyncd.conf , а примеры использования программы также представлены на сайте.
В мануале описано множество нюансов работы с этим мощным инструментом, таких как обработка символических ссылок и атрибутов файлов, опции удаления файлов при обновлении директорий, параметры пересылки данных и многое другое, что и в голову так просто не придет. В общем, в любой непонятной ситуации — RTFM!
luckyBackup
Графическая утилита, построенная на основе rsync. LuckyBackup умеет делать резервные копии и выполнять синхронизацию, работать с удаленными хостами и экономить трафик, передавая лишь изменения в данных, гибко настраивается (ну еще бы, ведь это потомок rsync). Внезапно (для меня) поддерживает русский интерфейс.
Для резервного копирования в luckyBackup создаются профили, внутри которых можно довольно тонко определить задачи:
- тип (бэкап или синхронизация) и описание задачи;
- правила копирования определенных директорий: настройка исключений по шаблонам, можно задать их самостоятельно или использовать имеющиеся; включений, которые должны быть обязательно скопированы;
- настроить использование удаленного узла в качестве источника или места назначения, с SSH или без;
- сохранение метаданных файлов, обработка ссылок и специальных файлов, в том числе по пользовательским шаблонам;
- команды оболочки, которые необходимо выполнить до или после исполнения задачи;
- можно просмотреть команду rsync , которая будет запущена для выполнения созданной задачи.
Задачи можно включать или отключать, тыкая курсором мыши в чекбокс рядом с ее названием. Профили можно экспортировать (почему бы не забэкапить профиль программы бэкапа?). Контекстная справка при наведении курсора помогает простому смертному не затеряться в расширенных опциях.
Расширенная настройка задач в luckyBackup
Back In Time
Утилита с набором функций, очень похожим на luckyBackup. Тоже поддерживает профили, но экспортировать их нельзя, и внутри них нет задач — здесь профиль и есть задача.
Back In Time может использоваться в консольном или GUI-исполнении. Предлагает обычные или шифрованные EncFS копии, которые могут храниться локально или передаваться по SSH. Позволяет создавать бэкапы по дням и по часам, при включении компьютера и при подключении устройств, для чего использует cron или правила udev .
Можно настроить удаление старых бэкапов по их возрасту и количеству свободного места или инод (inodes). Да-да, иноды тоже могут закончиться, и тогда ты не сможешь создать файл, даже если есть место на диске. Вкладка Expert Options содержит набор расширенных опций для rsync . Бэкапы утилита сохраняет в виде архивов.
Настройки профиля в Back In Time
Bacula
Опенсорсный монстр для резервного копирования. Его можно собрать из исходников, однако готовые пакеты последних версий с сайта разработчиков просто так не получишь. Bacula обещает мощную функциональность — программа не в последнюю очередь ориентирована на работу в крупных компьютерных сетях и вообще на масштабирование; она умеет делать все три вида бэкапов. Имеются версии для Windows (есть даже клиент под Win98!), macOS и Open/NetBSD.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Источник