Centos 7 backup системы со всеми настройками

Обновлено: 03.07.2024

Данное руководство научит создавать резервные копии удаленного хоста CentOS 7 с помощью Bacula. Вы узнаете, как установить Bacula Client на удаленный хост и откорректировать настройки существующего хоста Bacula Server.

Требования

  • Компоненты Bacula Server, установленные согласно этому руководству.
  • Частная сеть для взаимодействия клиента и сервера Bacula.
  • FQDN серверов должен указывать на внутренний IP-адрес. Если у вас нет соответствующих настроек DNS, вместо этого можно использовать IP-адреса серверов.
  • В руководстве используются условные данные: сервер Bacula будет называться BaculaServer, или сервер бэкапа; удаленные хосты называются ClientHost, или клиенты бэкапа.

Настройка Bacula Director

Перейдите на BaculaServer.

При настройке сервера Bacula вы, возможно, заметили, что файлы конфигурации слишком длинные. Попытаемся немного систематизировать конфигурацию Bacula Director. Создайте отдельные файлы для добавления новой конфигурации, например заданий, наборов файлов и пулов.

Создайте каталог для конфигурационных файлов Bacula:

sudo mkdir /etc/bacula/conf.d

Откройте конфигурационный файл Bacula Director:

sudo vi /etc/bacula/bacula-dir.conf

В конец файла вставьте строку:

@|"find /etc/bacula/conf.d -name '*.conf' -type f -exec echo @<> \;"

Сохраните и закройте файл. Теперь Director сможет искать дополнительные настройки в других файлах каталога /etc/bacula/conf.d. Любой файл с расширением .conf будет восприниматься как часть конфигурации.

Пул RemoteFile

Добавьте в настройку Bacula Director новый пул для резервного копирования удаленных серверов.

sudo vi /etc/bacula/conf.d/pools.conf

Добавьте ресурс Pool:

Сохраните и закройте файл. Эти строки определяют пул RemoteFile, который будет использоваться для резервного копирования клиентов. Все параметры можно отладить согласно вашим требованиям.

Пока что перезапускать Bacula Director не нужно. Просто убедитесь, что в файле нет ошибок.

sudo bacula-dir -tc /etc/bacula/bacula-dir.conf

Установка и настройка Bacula Client

Примечание: Этот раздел нужно выполнить на всех клиентах бэкапа.

Установите пакет bacula-client.

sudo yum install bacula-client

Эта команда установит File Daemon (FD).

Настройка клиента

Перед настройкой File Daemon нужно иметь в виду следующую условную информацию, которая будет использоваться в течение оставшейся части этого руководства:

Эти условные данные нужно заменять своими данными.

Далее нужно будет добавить в настройки File Daemon пароль, который позволит Bacula Director подключиться нему. Сгенерируйте случайный пароль (можно пропустить этот шаг и создать свой собственный пароль):

date +%s | sha256sum | base64 | head -c 33 ; echo

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

Откройте конфигурационный файл File Daemon:

sudo vi /etc/bacula/bacula-fd.conf

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

Найдите ресурс Director с именем вашего клиентского хоста (например, ClientHost-dir). Измените значение параметра Name и укажите в нем имя хоста сервера бэкапа с суффиксом –dir. Например:

Director Name = BackupServer-dir
Password = "Y2Q5ODUyMWM0YTFhYjA3NTcwYmU5OTA4Y"
>

Затем нам нужно откорректировать один параметр в ресурсе FileDaemon. Измените параметр FDAddress, укажите в нем FQDN клиентской машины. Параметр Name уже должен содержать правильное имя демона FD клиента. Ресурс должен выглядеть примерно так (замените условные данные):

Messages Name = Standard
director = BackupServer-dir = all, !skipped, !restored
>

Сохраните и закройте файл. Клиент и File Daemon настроены.

Проверьте ошибки в файле:

sudo bacula-fd -tc /etc/bacula/bacula-fd.conf

Если команда не сообщила вам об ошибках, значит, в файле их нет.

Перезапустите демон, чтобы обновить настройки.

sudo systemctl restart bacula-fd

Теперь настройте каталог, в котором Bacula Server сможет хранить восстановленные файлы. Создайте структуру каталогов и заблокируйте доступ к ней:

sudo mkdir -p /bacula/restore
sudo chown -R bacula:bacula /bacula
sudo chmod -R 700 /bacula

Добавление файлов FileSet

Примечание: Данный раздел нужно выполнить на сервере.

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

Если вы выполнили руководство по установке Bacula Server, у вас уже есть FileSet по имени Full Set. Если вы хотите, чтобы система Bacula копировала почти все файлы системы, можете использовать этот FileSet в задачах. Но обычно для восстановления не нужно иметь бэкап всех файлов, потому этот набор желательно сократить, чтобы сэкономить дисковое пространство.

Тщательный отбор файлов, включенных в FileSet, экономит не только объем дискового пространства, но и время, требуемое для запуска задания резервного копирования. Это также может упростить восстановление, поскольку вам не нужно просматривать весь Full Set, чтобы найти файлы, которые нужно восстановить.

Попробуйте создать новые ресурсы FileSet.

На сервере Bacula откройте файл filesets.conf в конфигурационном каталоге Bacula Director:

sudo vi /etc/bacula/conf.d/filesets.conf

Создайте ресурс FileSet для каждого конкретного набора файлов, который вы хотите использовать в задачах резервного копирования. В этом примере показано, как создать FileSet, который включает только домашний каталог и каталог etc:

FileSet Name = "Home and Etc"
Include Options signature = MD5
compression = GZIP
>
File = /home
File = /etc
>
Exclude File = /home/bacula/not_important
>
>

  • Имя FileSet должно быть уникальным.
  • В FileSet нужно указать все файлы или разделы, бэкап которых нужно выполнить.
  • Чем меньше в FileSet лишних и ненужных файлов, тем продуктивнее резервное копирование.
  • Количество FileSet не ограничено.

Добавление задач Client и Backup на сервер Bacula

Чтобы добавить клиентский хост в настройки сервера Bacula, создайте в настройках Bacula Director новые ресурсы – Client и Job.

sudo vi /etc/bacula/conf.d/clients.conf

Добавление ресурса Client

Ресурс Client предоставляет Director информацию, необходимую ему для подключения к хосту клиента. Сюда входят имя, адрес и пароль File Daemon клиента.

Вставьте в файл этот ресурс Client.

Примечание: Замените условные данные.

Создание задачи Backup

Задача Backup определяет клиента и файлы, которые нужно скопировать. Имя задачи должно быть уникальным.

Вставьте задачу в файл conf.d/clients.conf.

Job Name = "BackupClientHost"
JobDefs = "DefaultJob"
Client = ClientHost-fd
Pool = RemoteFile
FileSet="Home and Etc"
>

Сохраните и закройте файл.

Проверка настроек Bacula Director

Убедитесь, что в файле Bacula Director нет ошибок:

sudo bacula-dir /etc/bacula/bacula-dir.conf

Перезапуск Bacula Director

Чтобы обновить настройки, перезапустите Bacula Director.

sudo systemctl restart bacula-dir

Теперь сервер Bacula сможет создавать резервные копии удаленного хоста.

Тестирование подключения клиента

Теперь нужно убедиться, что Bacula Director может подключиться к клиенту Bacula.

На сервере Bacula откройте консоль Bacula:

Команда должна сразу отобразить состояние File Daemon клиента. Если этого не произошло и возникла ошибка, проверьте настройки клиента и сервера Bacula.

Запуск тестовой задачи

Запустите задачу на сервере Bacula.

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

Confirmation prompt:
OK to run? (yes/mod/no): yes

Также вы можете узнать состояние задачи. Для этого нужно запросить состояние Director. Введите в bconsole:

Состояние OK значит, что задача выполнена успешно.

Восстановление данных

Создав резервную копию, важно проверить ее восстановление. Команда restore позволяет восстанавливать скопированные файлы.

Введите в Bacula Console:

На экране появится меню, в котором можно выбрать резервный набор, который необходимо восстановить. Поскольку у вас есть только одна резервная копия, выберите вариант 5, «Select the most recent backup»:

Select item (1-13):
5

Затем будет предложено выбрать клиента. Выберите удаленный хост ClientHost-fd.

Select the Client: ClientHost-fd
Defined Clients:
1: BackupServer-fd
2: ClientHost-fd
Select the Client (1-2): 2

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

Поскольку для восстановления использовалась команда restore all, все скопированные файлы уже выбраны. Файлы, которые входят в список восстанавливаемых, отмечены звездочкой *.

Чтобы откорректировать список файлов, вы можете перемещаться и просматривать содержимое с помощью команд cd и ls, а также добавлять и исключать файлы с помощью команд mark и unmark.

Чтобы получить полный список команд, введите help.

Выбрав все необходимые файлы, введите:

OK to run? (yes/mod/no):
yes

Проверьте состояние Director:

Чтобы закрыть Bacula Console, введите:

Если восстановление прошло правильно, вы найдете файлы в каталоге /bacula/restore на клиенте. После тестирования восстановленные файлы можно удалить.

Заключение

Теперь у вас есть сервер и клиент Bacula. Вы можете самостоятельно отладить FileSet, чтобы обеспечить своевременное резервное копирование всех необходимых файлов.

Прежде чем исследовать методы развертывания стандартного плана резервного копирования, специфичные для CentOS, давайте сначала обсудим типичные аспекты политики резервного копирования стандартного уровня. Первое, к чему мы хотим привыкнуть, это правило резервного копирования 3-2-1 .

3-2-1 Стратегия резервного копирования

Во всей отрасли вы часто слышите термин «резервная модель 3-2-1». Это очень хороший подход для реализации плана резервного копирования. 3-2-1 определяется следующим образом: 3 копии данных; например, у нас может быть рабочая копия; копия, помещенная на сервер CentOS, предназначенный для резервирования с использованием rsync; и повернутые резервные копии USB сделаны из данных на сервере резервного копирования. 2 разных резервных носителя. На самом деле в этом случае у нас будет три разных носителя для резервного копирования: рабочая копия на SSD ноутбука или рабочей станции, данные сервера CentOS на массиве RADI6 и внешнее резервное копирование на USB-накопители. 1 копия данных вне офиса; мы вращаем USB-накопители вне площадки каждый вечер. Другим современным подходом может быть поставщик облачного резервного копирования.

Восстановление системы

Полное восстановление данных и восстановление с нуля обычно выполняется с помощью комбинации методов, включая рабочие, настроенные рабочие образы дисков ключевых операционных серверов, избыточные резервные копии пользовательских данных, соблюдая правило 3-2-1. Даже некоторые конфиденциальные файлы, которые могут храниться в безопасном, пожаробезопасном сейфе с ограниченным доступом к персоналу доверенной компании.

План многофазного восстановления и восстановления данных с использованием собственных инструментов CentOS может состоять из:

dd создавать и восстанавливать производственные образы дисков настроенных серверов

rsync для создания инкрементных резервных копий всех пользовательских данных

tar & gzip для хранения зашифрованных резервных копий файлов с паролями и заметками от администраторов. Обычно это можно записать на USB-накопитель, зашифровать и заблокировать в сейфе, к которому имеет доступ старший менеджер. Кроме того, это гарантирует, что кто-то другой будет знать жизненно важные учетные данные безопасности, если текущий администратор выиграет в лотерее и исчезнет на солнечном острове.

dd создавать и восстанавливать производственные образы дисков настроенных серверов

rsync для создания инкрементных резервных копий всех пользовательских данных

tar & gzip для хранения зашифрованных резервных копий файлов с паролями и заметками от администраторов. Обычно это можно записать на USB-накопитель, зашифровать и заблокировать в сейфе, к которому имеет доступ старший менеджер. Кроме того, это гарантирует, что кто-то другой будет знать жизненно важные учетные данные безопасности, если текущий администратор выиграет в лотерее и исчезнет на солнечном острове.

Если система выходит из строя из-за аппаратного сбоя или сбоя, следующие этапы восстановления операций будут следующими:

Создайте рабочий сервер с настроенным голым железным образом

Восстановление данных на рабочий сервер из резервных копий

Иметь физический доступ к учетным данным, необходимым для выполнения первых двух операций

Создайте рабочий сервер с настроенным голым железным образом

Восстановление данных на рабочий сервер из резервных копий

Иметь физический доступ к учетным данным, необходимым для выполнения первых двух операций

Используйте rsync для резервного копирования на уровне файлов

  • Исследуйте и поговорите о некоторых распространенных вариантах
  • Создать локальные резервные копии
  • Создавайте удаленные резервные копии по SSH
  • Восстановить локальные резервные копии

rsync назван по назначению: удаленная синхронизация и является мощной и гибкой в ​​использовании.

Ниже приведено базовое удаленное резервное копирование rsync через ssh:

Следующая синхронизация отправила почти 2,3 ГБ данных по нашей локальной сети. Прелесть rsync в том, что он работает постепенно на уровне блоков для каждого файла отдельно. Это означает, что если мы изменим только два символа в текстовом файле размером 1 МБ, только один или два блока будут переданы через сеть при следующей синхронизации!

Кроме того, инкрементная функция может быть отключена в пользу большей пропускной способности сети, используемой для меньшей загрузки ЦП. Это может оказаться целесообразным, если постоянно копировать несколько файлов базы данных по 10 МБ каждые 10 минут на выделенной резервной локальной сети емкостью 1 ГБ. Причина заключается в следующем: они всегда будут меняться и будут передаваться постепенно каждые 10 минут и могут облагаться нагрузкой на удаленный ЦП. Поскольку общая нагрузка передачи не будет превышать 5 минут, мы можем просто синхронизировать файлы базы данных в полном объеме.

Когда использовать rsync

Локальное резервное копирование с rsync

Мы уже видели, как передавать файлы с одного хоста на другой. Тот же метод можно использовать для локальной синхронизации каталогов и файлов.

Давайте сделаем ручное добавочное резервное копирование / etc / в каталоге нашего корневого пользователя.

Во-первых, нам нужно создать каталог с

Затем убедитесь, что на диске достаточно свободного места.

Только наш файл test_incremental.txt был скопирован.

Удаленное дифференциальное резервное копирование с rsync

Давайте сделаем наше первоначальное полное резервное копирование rsync на сервер с развернутым планом резервного копирования. В этом примере фактически выполняется резервное копирование папки на рабочей станции Mac OS X на сервер CentOS. Другим важным аспектом rsync является то, что его можно использовать на любой платформе, на которую был перенесен rsync.

Теперь мы создали резервную копию папки с рабочей станции на сервере с томом RAID6 с повернутым носителем аварийного восстановления, который хранится вне сайта. Использование rsync дало нам стандартное резервное копирование 3-2-1 только с одним сервером, имеющим дорогой избыточный дисковый массив и повернутые дифференциальные резервные копии.

Теперь давайте сделаем еще одну резервную копию этой же папки с помощью rsync после того, как был добавлен новый файл с именем test_file.txt .

Как видите, только новый файл был доставлен на сервер через rsync . Дифференциальное сравнение было сделано для каждого файла отдельно.

Несколько вещей, на которые следует обратить внимание: это только копирует новый файл: test_file.txt, так как это был единственный файл с изменениями. Rsync использует SSH. Нам не нужно было использовать нашу учетную запись root ни на одной машине.

Простой, мощный и эффективный rsync отлично подходит для резервного копирования целых папок и структур каталогов. Однако rsync сам по себе не автоматизирует процесс. Вот где нам нужно покопаться в нашем наборе инструментов и найти лучший, маленький и простой инструмент для работы.

Для автоматизации резервного копирования rsync с помощью cronjobs важно, чтобы пользователи SSH были настроены с использованием ключей SSH для аутентификации. Это в сочетании с cronjobs позволяет выполнять rsync автоматически через определенные промежутки времени.

Используйте DD для блочных изображений восстановления голого металла

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

Весь процесс создания загрузочного образа системы с помощью dd выглядит следующим образом:

  • Загрузка с сервера CentOS с загрузочного дистрибутива Linux
  • Найдите обозначение загрузочного диска для образа
  • Определите место, где будет храниться образ восстановления
  • Найдите размер блока, используемого на вашем диске
  • Запустите операцию изображения dd

В этом уроке ради времени и простоты мы будем создавать ISO-образ основной загрузочной записи с виртуальной машины CentOS. Затем мы будем хранить это изображение вне сайта. В случае, если наша MBR повреждена и требует восстановления, тот же процесс может быть применен ко всему загрузочному диску или разделу. Тем не менее, время и дисковое пространство, необходимое для этого урока, немного запредельные.

Администраторам CentOS рекомендуется научиться восстанавливать полностью загрузочный диск / раздел в тестовой среде и выполнять восстановление «с нуля». Это избавит от большого давления, когда в конечном итоге нужно будет завершить практику в реальной ситуации, когда менеджеры и несколько десятков конечных пользователей будут считать время простоя. В таком случае 10 минут на то, чтобы разобраться, могут показаться вечностью и потеть.

Примечание о размере блока. Размер блока по умолчанию для dd составляет 512 байт. Это был стандартный размер блока жестких дисков меньшей плотности. Современные жесткие диски с более высокой плотностью увеличились до 4096 байт (4 КБ), что позволяет использовать диски размером от 1 ТБ и более. Таким образом, мы хотим проверить размер дискового блока перед использованием dd с более новыми жесткими дисками большей емкости.

В этом руководстве вместо работы на рабочем сервере с dd мы будем использовать установку CentOS, работающую в VMWare. Мы также настроим VMWare для загрузки загрузочного ISO-образа Linux вместо того, чтобы работать с загрузочной флешкой USB.

Сначала нам нужно скачать образ CentOS под названием: CentOS Gnome ISO . Это почти 3 ГБ, поэтому рекомендуется всегда сохранять копию для создания загрузочных USB-накопителей и загрузки на виртуальные серверные установки для устранения неполадок и получения изображений с нуля.

Другие загрузочные дистрибутивы Linux будут работать так же хорошо. Linux Mint можно использовать для загрузочных ISO-образов, поскольку он имеет отличную поддержку оборудования и отшлифованные инструменты для графического интерфейса пользователя для обслуживания.

Давайте настроим установку VMWare Workstation для загрузки с нашего загрузочного образа Linux. Шаги предназначены для VMWare в OS X. Однако они одинаковы для VMWare Workstation в Linux, Windows и даже Virtual Box.

Примечание. Использование решения для виртуального рабочего стола, такого как Virtual Box или VMWare Workstation, является отличным способом настройки лабораторных сценариев для изучения задач администрирования CentOS. Он обеспечивает возможность установки нескольких установок CentOS, практически без аппаратной конфигурации, позволяя человеку сосредоточиться на администрировании, и даже сохранить состояние сервера перед внесением изменений.

Образ ISO

Загрузочный диск

Теперь при загрузке наша виртуальная машина будет загружаться из загрузочного ISO-образа CentOS и разрешать доступ к файлам на сервере Virtual CentOS, который был предварительно настроен.

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

Мы нашли оба наших физических диска: sda и sdb . Каждый имеет размер блока 512 байт. Итак, теперь мы запустим команду dd, чтобы скопировать первые 512 байт для нашей MBR на SDA1.

При работе с данными с дисков мы всегда хотим включить: conv = sync, параметр noerror .

Это просто потому, что диски не являются потоками, такими как данные TCP. Они состоят из блоков, выровненных до определенного размера. Например, если у нас есть 512-байтовые блоки, для файла размером всего 300 байт все еще нужны полные 512 байт дискового пространства (возможно, 2 блока для информации inode, такой как разрешения и другая информация файловой системы).

Используйте gzip и tar для безопасного хранения

Использование Gnu Tar в CentOS Linux

В течение многих лет tar является стандартом для хранения архивных файлов в Unix и Linux. Следовательно, использование tar вместе с gzip или bzip считается наилучшей практикой для архивов в каждой системе.

переключатель действие
Создает новый архив .tar
Выдержки в другой каталог
-j Использует сжатие bzip2
-z Использует сжатие GZIP
-v Подробный прогресс архивирования шоу
-t Содержит список архивов
-f Имя файла архива
-Икс Извлекает архив tar

Ниже приведен основной синтаксис для создания архива tar .

Замечание о механизмах сжатия с помощью tar. Рекомендуется придерживаться одной из двух распространенных схем сжатия при использовании tar: gzip и bzip2. GZIP-файлы потребляют меньше ресурсов процессора, но обычно имеют больший размер. В то время как bzip2 сжимается дольше, они используют больше ресурсов процессора; но приведет к меньшему конечному размеру файла.

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

bzip2 .tbz
bzip2 .tar.tbz
bzip2 .tb2
GZIP .tar.gz
GZIP .tgz

При необходимости извлечения архивов из коробки Windows или для использования в Windows рекомендуется использовать .tar.tbz или .tar.gz, так как большинство трехсимвольных расширений будут путать Windows и только администраторов Windows (однако это иногда желаемый результат)

Примечание. Вместо того, чтобы добавлять все файлы непосредственно в архив, мы заархивировали всю папку RemoteStuff . Это самый простой способ. Просто потому, что при извлечении весь каталог RemoteStuff извлекается со всеми файлами в текущем рабочем каталоге как ./currentWorkingDirectory/RemoteStuff/

Теперь давайте распакуем архив в каталог / root / home.

Как видно выше, все файлы были просто извлечены в каталог, содержащийся в нашем текущем рабочем каталоге.

Используйте gzip для сжатия резервных копий файлов

Как отмечалось ранее, мы можем использовать bzip2 или gzip из tar с ключами командной строки -j или -z . Мы также можем использовать gzip для сжатия отдельных файлов. Однако использование одних только bzip или gzip не дает столько возможностей, сколько в сочетании с tar .

Некоторые общие параметры командной строки для gzip:

переключатель действие
Сохраняет файлы после помещения в архив
-l Получить статистику для сжатого архива
Рекурсивно сжимает файлы в каталогах
-1 до 9 Определяет уровень сжатия по шкале от 1 до 9

gzip более или менее работает на файловой основе, а не на архивной основе, как некоторые утилиты Windows O / S zip. Основной причиной этого является то, что tar уже предоставляет расширенные возможности архивирования. GZIP предназначен для обеспечения только механизма сжатия.

Следовательно, когда вы думаете о gzip , подумайте об одном файле. Когда вы думаете о нескольких файлах, подумайте об архивах tar . Давайте теперь рассмотрим это с нашим предыдущим архивом tar .

Примечание. Опытные специалисты по Linux часто будут ссылаться на архивный архив как на тарбол.

Давайте сделаем еще один архив tar из нашей резервной копии rsync .

В демонстрационных целях давайте распакуем только что созданный tar-архив и скажем gzip сохранить старый файл. По умолчанию без опции -c gzip заменит весь архив tar на файл .gz .

Попробуем проверить ключ -l с помощью gzip .

Чтобы продемонстрировать, чем gzip отличается от Windows Zip Utilities, давайте запустим gzip для папки с текстовыми файлами.

Теперь давайте используем опцию -r для рекурсивного сжатия всех текстовых файлов в каталоге.

Увидеть? Не то, что некоторые могли ожидать. Все исходные текстовые файлы были удалены, и каждый был сжат по отдельности. Из-за этого поведения лучше всего думать о gzip в одиночку, когда нужно работать в отдельных файлах.

Работая с тарболами , давайте распакуем наш rsynced тарбол в новый каталог.

Как показано выше, мы распаковали и распаковали наш tar-архив в каталог / tmp.

Шифровать архивы TarBall

Шифрование архивных архивов для хранения защищенных документов, к которым, возможно, потребуется доступ другим сотрудникам организации, в случае аварийного восстановления может оказаться сложной задачей. Есть в основном три способа сделать это: либо использовать GnuPG, либо использовать openssl, либо использовать утилиту третьей части.

GnuPG в первую очередь предназначен для асимметричного шифрования и имеет в виду связь идентичности, а не парольную фразу. Правда, его можно использовать с симметричным шифрованием, но это не главное преимущество GnuPG. Таким образом, я бы отказался от GnuPG за хранение архивов с физической защитой, когда доступ может понадобиться большему количеству людей, чем первоначальному человеку (например, корпоративному менеджеру, который хочет защититься от администратора, использующего все ключи от королевства в качестве рычага).

Openssl, как и GnuPG, может делать то, что мы хотим, и поставляется с CentOS. Но опять же, он не предназначен специально для того, чтобы делать то, что мы хотим, и шифрование подвергалось сомнению в сообществе безопасности.

Установите 7zip на Centos

Все просто, 7zip установлен и готов к использованию с 256-битным шифрованием AES для наших архивных архивов.

Где : добавить в архив и -p: зашифровать и запросить фразу-пароль

Теперь у нас есть архив .7z, который шифрует сжатый архив с 256-битным AES.

Примечание. 7zip использует 256-битное шифрование AES с хешем пароля и счетчика SHA-256, повторяемое до 512 Кбайт для получения ключа. Это должно быть достаточно безопасно, если используется сложный ключ.

Процесс шифрования и повторного сжатия архива может занять некоторое время с большими архивами.

Допу­стим, что у нас есть ОС, все дан­ные кото­рой хра­нят­ся в одном раз­де­ле. Эту ОС необ­хо­ди­мо мигри­ро­вать на дру­гой сервер.

Гайд пред­по­ла­га­ет, что / (корень) — ваш загру­зоч­ный, если вы исполь­зу­е­те раз­мет­ку дис­ка MBR .

Из доступ­ных средств у нас — толь­ко LiveCD/ DVD / USB для резерв­но­го копи­ро­ва­ния и раз­верт­ки систе­мы. Систе­мы резерв­но­го копи­ро­ва­ния отсутствуют.

Резервное копирование

Нач­нем мы с резерв­но­го копирования.

Шаг 0. Загру­жа­ем­ся с Live системы.

Шаг 1. Мон­ти­ру­ем нако­пи­тель, на кото­рый будет про­из­во­дить­ся резерв­ное копи­ро­ва­ние систе­мы (дирек­то­рия мон­ти­ро­ва­ния ФС нако­пи­те­ля резерв­ных копий в при­ме­ре будет /media/backupdisk1, систе­ма смон­ти­ро­ва­на в /mnt).

Шаг 2. Созда­ем архив с резерв­ной копией.

Коман­да архи­ва­ции системы

tar cpJvf /media/backupdisk1/our_backup. xz --selinux --exclude /mnt/dev --exclude /mnt/proc --exclude /mnt/sys --exclude /mnt --exclude /media --exclude /mnt/lost+found --exclude /mnt/tmp /mnt/

Опи­са­ние опций tar:

  • с — create — создать;
  • p — сохра­ня­ем вла­дель­цев фай­лов и пра­ва к файлам;
  • J — исполь­зу­ем ком­прес­сию xz;
  • v — verbose, что­бы видеть, что про­ис­хо­дит во вре­мя архивации;
  • f — ука­зы­ва­ем файл, куда мы хотим сохра­нить копию/архив;
  • — -exclude — исклю­чить из архи­ва­ции дирек­то­рии и фай­лы. Из архи­ва исклю­ча­ют­ся ката­ло­ги, струк­ту­ра кото­рых созда­ет­ся при загруз­ке опе­ра­ци­он­ной систе­мы, в свя­зи с чем нет смыс­ла добав­лять их в архив.
  • — -selinux — сохра­ня­ем кон­тек­сты SElinux, при­ме­нен­ные к фай­лам. Исполь­зуй­те толь­ко при нали­чии в систе­ме SElinux и его под­держ­ки tar (как пра­ви­ло, при­сут­ству­ет в акту­аль­ных системах)!

Шаг 3. Демон­ти­ру­ем раз­дел нако­пи­те­ля, на кото­рый архи­ви­ро­ва­ли систему.

Восстановление из резервной копии

Шаг 0. Загру­жа­ем­ся с Live системы.

Шаг 1. Непло­хо бы для нача­ла раз­вер­нуть базо­вую систе­му на дис­ке для вос­ста­нав­ли­ва­е­мой ОС.

Или созда­ем раз­мет­ку дис­ка и раз­де­лы на нем.

Шаг 2. Мон­ти­ру­ем нако­пи­тель с резерв­ной копи­ей (в нашем при­ме­ре — /media/backupdisk1, а корень уста­нов­лен­ной ОС при­мон­ти­ро­ван в /mnt).

Шаг 3. Рас­па­ко­вы­ва­ем копию.

Коман­да разархивации

tar -xvpfJ --selinux /media/backupdisk1/our-backup. xz -C /mnt/

Опи­са­ние опций tar:

  • x — extract, выта­щить дан­ные из архива;
  • v — verbose, что­бы видеть, что про­ис­хо­дит во вре­мя разархивации;
  • p — сохра­ня­ем вла­дель­цев фай­лов и пра­ва к файлам;
  • f — ука­зы­ва­ем, из како­го фай­ла мы хотим вос­ста­но­вить копию/архив;
  • J — ука­зы­ва­ем при рас­па­ков­ке, что у нас исполь­зу­ет­ся ком­прес­сия xz;
  • -C — create. Вос­ста­но­вить струк­ту­ру ката­ло­гов, вос­со­здав отсутствующие.
  • — -selinux — сохра­ня­ем кон­тек­сты SElinux, при­ме­нен­ные к фай­лам. Исполь­зо­вать толь­ко при нали­чии в систе­ме SElinux и его под­держ­ки tar!

Шаг 4. Если мы выпол­ня­ем разар­хи­ва­цию не в гото­вую систе­му, вос­ста­но­вим дирек­то­рии, кото­рые мы исклю­чи­ли из архи­ва­ции, а так­же вос­ста­но­вим пра­виль­ные пра­ва досту­па к ним



Примерно год назад у меня возникла «острая» необходимость перевести систему резервного копирования данных в корпоративной сети на бесплатные рельсы. До этого использовался платный продукт от Symantec, по нему, конечно, много нареканий, но он работал, хоть и не всегда справлялся. Как обычно, все надо было сделать «вчера», и я приступил к поиску вариантов.

Для начала начал искать решение для резервного копирования файлов, очевидным решением было простая настройка скриптов на Linux по cron, но это не очень удобное и надежное решение, если серверов более одного(а у меня их около 50-ти) и структура достаточно динамична. Тем более если инфраструктура смешанная, Linux + Windows. Хотелось что-нибудь простое в дальнейшем обслуживании и извлечении самих копий, например, переложить восстановление пользовательских файлов на группу поддержки. Порывшись пару часов в интернете, я наткнулся на интересный проект UrBackup, он удовлетворял всем моим условиям.

Как операционную систему я выбрал CentOS 6 в конфигурации minimal, взять можно тут. Подробно на установке и первичной настройке останавливаться не будут, т.к. манулов по этой процедуре уже достаточно на Хабре. Перейдем к установке виновника топика UrBackup.

Предыдущие версии UrBackup приходилось собирать из исходников, но слава разработчикам, для последних версий появились репозитории для большинства популярных систем. Хотя собрать из исходников проблем не составляло, репозиторий сильно упрощает жизнь, особенно при обновлениях.


Так же для серверов внутри сети отключаем selinux:

Отключаем selinux без перезагрузки:


Устанавливаем сервис в автозагрузку и запускаем:


Готово. Можно подключаться и настраивать.

Заходим по адресу. При желании выбираем язык и идем в настройки:


Тут для первичной настройки нам необходимо указать только путь для хранения бекапов. Не забываем нажать кнопку «сохранить» и мы можем переходить к настройке клиентов.

Для начала нам необходимо установить клиент на сервер, который мы хотим копировать. Клиент для Windows систем можно скачать с сайта разработчиков, но так как мы в данный момент рассматриваем linux-системы, рассмотрим установку на тот же CentOS 6:


Добавляем правила в iptables:


Не забываем отключить selinux, если, конечно, в нем нет необходимости. И можно добавлять клиента на сервер. Возвращаемся на сервер. Идем в раздел «статус»:


Вбиваем в поле «Имя/IP» IP-адрес сервера, с которого мы хотим бекапить данные, и нажимаем добавить. Ждем пару минут, пока клиент появится в списке.

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

Идем в настройки:


Выбираем наш сервер из списка и настраиваем «каталоги по умолчанию для бекапа».

Готово. Сервер настроен и работает. Во время работы мы видим нечто подобное:


Сервер работает на удивление быстро и очень компактно использует место на диске, используя подобие дедубликации на основе симлинков.

Это минимальная настройка сервера, при желании можно настроить авторизацию, архивацию, создание образов систем (Windows), резервное копирование через интернет и т.д. В дальнейших статьях планирую рассказать, как на этот же сервер настроить резервное копирование MSSQL и Exchange, если это, конечно, будет интересно читателям.

Читайте также: