Разворачивание сист. резервного копирования BackupPC на SLES

Обсуждение серверных технологий

Разворачивание сист. резервного копирования BackupPC на SLES

Сообщение Al Ср окт 28, 2009 1:23 pm

Статья написана на основе опыта эксплуатации SLES 10

Майк Петерсен

Оригинал статьи:
http://www.pcc-services.com/sles/backuppc1.html

Все вступления и прочая вода пропущены.

Создание пользователя BackupPC

Из соображений безопасности создадим системного пользователя backuppc:
Yast - "User Management", фильтр установить на показ "system user", нажать Add.
Заполним необходимые поля следующим образом:

Username: backuppc
Check "Disable User Logins"
Home Directory: /srv/backuppc
Logon Shell: /bin/false
Default Group: www

Установка и конфигурирование Apache

BackupPC использует Apache для предоставления доступа через веб-интерфейс к своим функциям.
Для установки:
Yast - "Software Management" - "Patterns", выбрать "Web and LAMP Server", для установки нажать Accept.
Для настройки Апача так, чтобы его мог использовать BackupPC:
Yast - "HTTP Server". При первом запуске модуль настройки Апача предоставляет мастер установки. При проходе по шагам мастера потребуется выделить "Perl Scripting" и "PHP5 Scripting". Убедитесь, что Апач доступен для старта/рестарта.
Теперь нужно задать парольный вход для пользователей услуг резервного копирования.
Перезапустим модуль Yast - "HTTP Server". Зайдем на вкладку "Default Host".
Здесь нужно отредактировать запись "Directory" для "/srv/www/cgi-bin" таким образом:

AllowOverride AuthConfig
Options +ExecCGI -Includes
Order Deny,Allow

Это позволит нам разместить файл доступа в директории /srv/www/cgi-bin, поэтому веб-морда будет появляться только после авторизации пользователя.

Создаём .htaccess и обеспечиваем доступ
Внутри /srv/www/cgi-bin создадим файл .htaccess и заполним его таким содержимым:

AuthType Basic
AuthName "Username / Password Required"
AuthUserFile /srv/backuppc/password.file
Require valid-user

Пользователи должны быть добавлены в файл паролей /srv/backuppc/password.file следующими командами:

htpasswd2 -c /srv/backuppc/password.file adminuser

для админа и далее для каждого следующего:

htpasswd2 /srv/backuppc/password.file username

Предупреждение: ничего вроде списков доступа не существует - любой пользователь компьютера, хранящего в BackupPC свои файлы, может получить доступ к ЛЮБЫМ файлам, залитым с этого компьютера.

Конфигурируем Апач так, чтобы он запускался от имени пользователя BackupPC

Для этого нужно добавить в /etc/apache/uid.conf строки:

User backuppc
Group www

Перестартуем Апач для применения изменений.

Завершаем конфигурирование SLES

Последние телодвижения перед установкой BackupPC. Установим модули Perl, которые использует система:

yast -i perl-Archive-Zip perl-Compress-Zlib

а также пакетик, которого нет в репозитории:

wget http://www.pcc-services.com/sles/backuppc/perl-File-RsyncP-0.68-SLED.v1.i586.rpm
yast -i perl-File-RsyncP*

Далее инициализируем клиент точного времени:

Yast - Network Services - NTP Client

и обновим дистрибутив:

Yast - Software Management - Online Update

Установка BackupPC

От рута выполним следующие команды:

wget http://www.pcc-services.com/sles/backuppc/BackupPC-3.0.0.tar.gz
tar zxf BackupPC-3.0.0.tar.gz
cd BackupPC-3.0.0
perl configure.pl

Вместо того, чтобы описывать все возможные опции, приведу вывод процесса с типичными ответами:

=============================================================

Is this a new installation or upgrade for BackupPC? If this is
an upgrade please tell me the full path of the existing BackupPC
configuration file (eg: /etc/BackupPC/config.pl). Otherwise, just
hit return.

--> Full path to existing main config.pl []? Жмём ENTER

I found the following locations for these programs:

bzip2 => /usr/bin/bzip2
cat => /bin/cat
df => /bin/df
gtar/tar => /bin/tar
gzip => /usr/bin/gzip
hostname => /bin/hostname
nmblookup => /usr/bin/nmblookup
par2 =>
perl => /usr/bin/perl
ping => /bin/ping
rsync => /usr/bin/rsync
sendmail => /usr/sbin/sendmail
smbclient => /usr/bin/smbclient
split => /usr/bin/split
ssh/ssh2 => /usr/bin/ssh

--> Are these paths correct? [y]? Жмём ENTER

Please tell me the hostname of the machine that BackupPC will run on.

--> BackupPC will run on host [backuppc]? Жмём ENTER

BackupPC should run as a dedicated user with limited privileges. You
need to create a user. This user will need read/write permission on
the main data directory and read/execute permission on the install
directory (these directories will be setup shortly).

The primary group for this user should also be chosen carefully.
The data directories and files will have group read permission,
so group members can access backup files.

--> BackupPC should run as user [backuppc]? Жмём ENTER

Please specify an install directory for BackupPC. This is where the
BackupPC scripts, library and documentation will be installed.

--> Install directory (full path) [/usr/local/BackupPC]? /opt/BackupPC

Please specify a data directory for BackupPC. This is where all the
PC backup data is stored. This file system needs to be big enough to
accommodate all the PCs you expect to backup (eg: at least several GB
per machine).

--> Data directory (full path) [/data/BackupPC]? /srv/backuppc

BackupPC can compress pool files, providing around a 40% reduction in pool
size (your mileage may vary). Specify the compression level (0 turns
off compression, and 1 to 9 represent good/fastest to best/slowest).
The recommended values are 0 (off) or 3 (reasonable compression and speed).
Increasing the compression level to 5 will use around 20% more cpu time
and give perhaps 2-3% more compression.

--> Compression level [3]? Жмём ENTER

BackupPC has a powerful CGI perl interface that runs under Apache.
A single executable needs to be installed in a cgi-bin directory.
This executable needs to run as set-uid backuppc, or
it can be run under mod_perl with Apache running as user backuppc.

Leave this path empty if you don't want to install the CGI interface.

--> CGI bin directory (full path) []? /srv/www/cgi-bin

BackupPC's CGI script needs to display various GIF images that
should be stored where Apache can serve them. They should be
placed somewher under Apache's DocumentRoot. BackupPC also
needs to know the URL to access these images. Example:

Apache image directory: /usr/local/apache/htdocs/BackupPC
URL for image directory: /BackupPC

The URL for the image directory should start with a slash.

--> Apache image directory (full path) []? /srv/www/htdocs/BackupPC
--> URL for image directory (omit http://host; starts with '/') []? /BackupPC

Ok, we're about to:

- install the binaries, lib and docs in /opt/BackupPC,
- create the data directory /srv/backuppc,
- create/update the config.pl file /etc/BackupPC/config.pl,
- optionally install the cgi-bin interface.

--> Do you want to continue? [y]? Жмём ENTER
Created /opt/BackupPC/bin
Created /opt/BackupPC/doc
Created /opt/BackupPC/lib/BackupPC/CGI
Created /opt/BackupPC/lib/BackupPC/Config
Created /opt/BackupPC/lib/BackupPC/Lang
Created /opt/BackupPC/lib/BackupPC/Storage
Created /opt/BackupPC/lib/BackupPC/Xfer
Created /opt/BackupPC/lib/BackupPC/Zip
Created /srv/www/htdocs/BackupPC
Created /srv/backuppc
Created /srv/backuppc/pool
Created /srv/backuppc/cpool
Created /srv/backuppc/pc
Created /srv/backuppc/trash
Created /etc/BackupPC
Created /var/log/BackupPC
Installing binaries in /opt/BackupPC/bin
Installing library in /opt/BackupPC/lib
Installing images in /srv/www/htdocs/BackupPC
Making init.d scripts
Installing docs in /opt/BackupPC/doc
Installing config.pl and hosts in /etc/BackupPC

================================================================

Подкрутим некоторые параметры

Параметры лежат в файле /etc/BackupPC/config.pl file. Обратите внимание на то, что все эти опции могут быть изменены из веб-интерфейса по ссылке "Edit Config" на странице статуса (новое в BackupPC version 3.0.0).

$Conf{WakeupSchedule} - строка 118 - позволяет задать, когда BackupPC будет проверять, не нуждаются ли ваши сервера в бэкапе.

$Conf{FullKeepCnt} - строка 440 - задаёт, сколько различных копий будет храниться. Если имеется достаточно места, рекомендую выставить это дело в [ 4,0,4,0,0,2 ] , что позволяет быть уверенным в сохранности и старых копий для возможных откатов.

$Conf{EmailAdminUserName} - строка 1726 - адрес электронной почты, куда BackupPC шлёт всякие предупреждения и сообщения о проблемах.

$Conf{EmailUserDestDomain} - строка 1737 - устанавливается, если вы хотите оповещать и пользователей о проблемах.

$Conf{CgiAdminUsers} - строка 1857 - устанавливается для пользователей, которые будут иметь полный контроль над всеми архивируемыми клиентами.

Чтобы BackupPC стартовал при старте системы

потребуется скачать и установить инит-скрипт, так как нативно BackupPC не в курсе особенностей SLES:

wget http://www.pcc-services.com/sles/backuppc/backuppc
install -m 0755 backuppc /etc/init.d/

Вписать в загрузку при старте:

chkconfig -a backuppc

Стартануть сервис:

/etc/init.d/backuppc start

Теперь веб-интерфейс должен быть доступен по ссылке:

hostname/cgi-bin/BackupPC_Admin

Конфигурирование клиентов

Наиболее частая проблема при использовании некоторых режимов Rsync заключается в доступе к машинам по именам. Чтобы избежать проблем, придётся или поднимать в локальной сети DNS сервер, или прописать все имена в /etc/hosts.

Линукс-клиенты

Наилучший метод создания резервных копий в Линукс на удалённой машине - использование rsync через канал SSH. Для того, чтобы сервер бэкапов мог доступиться до всех клиентов, потребуется обмен ключами.

(Далее автор приводит не самую прозрачную последовательность команд. Смысл: нужно сгенерировать на сервере ключ ssh и положить его в директорию ~/.ssh клиента, завёрнутый в файл authorized_keys или authorized_key2, если один ключ. При генерации ключа генератор спрашивает парольную фразу, ЕЁ НУЖНО ОСТАВИТЬ ПУСТОЙ, то есть просто жмите ввод, иначе при каждом доступе sshd будет требовать ввести пароль на ключ, а нам как раз нужна беспарольная авторизация - прим. перев.)

Заходим от имени backuppc. Так как он не обычный пользователь и не имеет шелла, через su:

su -s /bin/bash backuppc

Переходим в домашний каталог пользователя backuppc:

cd

Генерируем пару ключей RSA:

ssh-keygen -b 2048 -t rsa
chmod -R go-rxw .ssh/*
cp .ssh/id_rsa.pub BackupPCkey.pub

Копируем ключ на клиент:

sftp root@clientmachine
put BackupPCkey.pub
exit

Запихиваем серверный ключ в нужный файл на клиенте:

ssh root@clientmachine
ssh-keygen -b 2048 -t rsa
cat BackupPCkey.pub >> .ssh/authorized_keys2
chmod -R go-rxw .ssh/*

Пробуем зайти на клиент по рутом клиента без пароля:

ssh -l root clientmachine "whoami"

whoami должна выдать "root".

По умолчанию BackupPC лезет за режимами бэкапа в глобальный файл /etc/BackupPC/config.pl. Он в основном пригоден для Виндоуз-машин. Поэтому нам потребуется конфиг отдельно для каждой машины-клиента.

От рута:

mkdir /etc/BackupPC/pc

touch /etc/BackupPC/pc/clientname.pl

Заполним файл имя_клиента.pl следующими строками:

$Conf{XferMethod} = 'rsync';
$Conf{RsyncShareName} = [ '/etc', '/home', '/srv', '/var' ];

смысл которых ясен.

Создав "помашинный конфиг" мы должны добавить имя машины в файл /etc/BackupPC/hosts !!!

Рестартуем backuppc сервис.

Для редактирования имен клиентов также доступна ссылка "Edit Hosts" на странице Server Status Page веб-интерфейса.

Windows клиенты

Виндоуз клиентам доступно два метода бэкапа: rsyncd XferMethod и smb метод. Я настоятельно рекомендую использовать rsyncd XferMethod.
Метод smb хорош тем, что не требует дополнительных программ на клиенте.

Для использования rsync нужно загрузить файлы, например отсюда: http://sourceforge.net/project/showfiles.php?group_id=34854&package_id=88133

После установки идем в каталог C:\rsyncd\ и в файле rsyncd.conf изменяем "auth users = backuppc_user" для каждой записи "share" и меняем "read only = true" на false.

Далее изменим записи в файле rsyncd.secrets:

backuppc_user:password

Убедившись, что никто не видел, что вы ввели в качестве пароля, выставьте права на файл только на чтение и только системному администратору.

Далее дважды кликнем на файле services.bat для установки и запуска стартового скрипта.

Теперь создадим "помашинный конфиг" для Виндоуз-машины на сервере в /etc/BackupPC/pc/. Файл /etc/BackupPC/pc/win_clientname.pl должен содержать примерно следующие строки:

$Conf{XferMethod} = 'rsyncd';
$Conf{RsyncdUserName} = 'backuppc_user';
$Conf{RsyncdPasswd} = 'password';
$Conf{RsyncShareName} = 'cDrive';

Добавим имя Виндоуз-машины в etc/BackupPC/hosts и рестартуем сервис backuppc.

(Желающим использовать метод smb предлагается пройти по оригинальной ссылке - прим. перев.)


Продолжение следует.
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm

Re: Разворачивание сист. резервного копирования BackupPC ч. 2

Сообщение Al Ср окт 28, 2009 2:12 pm

Работа с Веб-интерфейсом

По умолчанию веб-морда доступна по ссылке:

http://hostname/cgi-bin/BackupPC_Admin

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

http://hostname/

Текст файла редиректа /srv/www/htdocs/index.html:

<head>
<meta http-equiv="Refresh" content="0; URL=/cgi-bin/BackupPC_Admin">
<title>BackupPC Redirect Page</title>
</head>
<body>
<p><a href="/cgi-bin/BackupPC_Admin">BackupPC Web Interface</a></p>
</body>

Приступаем к использованию

Status Screen - Эта страница позволяет следить за статусом вашего BackupPC сервера. Здесь можно оценить достаточность места на дисках для будущих бэкапов, используемое пространство, просмотреть задачи, которые выполняются и сообщения об ошибках.

Web_status_screen.jpg
Web_status_screen.jpg (115.51 Кб) Просмотров: 9788


Host Summary Screen - Эта страница выдает информацию о конкретном хосте, который вы планируете на резервное копирование.

Web_host_summary.jpg
Web_host_summary.jpg (100.57 Кб) Просмотров: 9719


Browsing Backups - Когда вы нажимаете на номер резервной копии на экране обзора хоста, появляется это окно. Здесь вы можете выбрать файл для просмотра на своей машине или задать его восстановление.

Web_browsing_backups.jpg
Web_browsing_backups.jpg (102.25 Кб) Просмотров: 9767
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm

Re: Разворачивание сист. резервного копирования BackupPC ч.3

Сообщение Al Ср окт 28, 2009 3:13 pm

Restoring Files - когда вы выбрали файлы для восстановления, появляется экран восстановления. Здесь имеются разные опции процесса. Можно восстановить файл прямо на клиентскую машину, это поведение ведет к перезаписи имеющегося там файла. Прямое восстановление может работать, а может и не работать в зависимости от установок для клиента. Если задано поведение "только для чтения" - то не работает. Кроме этого можно выбрать формат компрессии.

Web_restore_screen.jpg
Web_restore_screen.jpg (110.21 Кб) Просмотров: 9645


Изменение поведения сервера через веб-интерфейс

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

Configuration Editor - когда вы кликаете ссылку "Edit Config" на экране "Server Status Screen". Для подробного изучения содержания опции просто кликните на неё. Что нужно помнить: если вы добавляете хост через веб-интерфейс, необходимо вручную создать файл hostname.pl в каталоге /etc/BackupPC/pc.

Web_editing_configfile.jpg
Web_editing_configfile.jpg (106.12 Кб) Просмотров: 9770


Web_adding_hosts.jpg
Web_adding_hosts.jpg (112.45 Кб) Просмотров: 9593
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm

Re: Разворачивание сист. резервного копирования BackupPC ч.4

Сообщение Al Чт окт 29, 2009 2:08 pm

Конфигурирование BackupPC для архивирования резервных копий клиентов

BackupPC хорош как система для создания резервных копий "он-сайт". Если вы хотите создать архивы для записи на внешние носители или в сетевые каталоги, например, на случай пожара, нужно закончить конфигурирование созданием "Архива".

Добавим "Host" в конфигурацию BackupPC Server. Это будет некий виртуальный хост спецназначения. Первое - создать для него конфигурацию, то есть файл /etc/BackupPC/pc/archive.pl, где archive.pl - зарезервированное имя, именно его и ожидает система для включения опции архива. Содержимое:

$Conf{XferMethod} = 'archive';

Добавьте имя "archive" в /etc/BackupPC/hosts, если хотите - через Веб-интерфейс. Далее вручную нужно создать каталог /srv/backuppc/pc/archive и придать ему соответственные права:

mkdir /srv/backuppc/pc/archive
chown backuppc:www /srv/backuppc/pc/archive
chmod o-rwx /srv/backuppc/pc/archive

Перегрузите конфигурацию BackupPC. В Веб-интерфейсе эта опция находится в "Admin Options".

Теперь можно стартовать процесс архивирования через обзор хоста "archvie". Следующий экран позволит выбрать из имеющихся бэкапов для сохранения в архив.

Archive_start.jpg
Archive_start.jpg (72.02 Кб) Просмотров: 9816


После старта архивирования можно будет выбрать некоторые опции:

Archive_options.jpg
Archive_options.jpg (73.79 Кб) Просмотров: 9837


Archive Location/Device - здесь задается директория, где желательно сохранить архив. Это может быть съемный или сетевой диск, смонтированный сетевой каталог. Не используйте мой пример "/srv/backuppc", если нужно, создайте директорию "/srv/backuppc/archive", просто помните, что в этом каталоге должно быть достаточно свободного места.

Compression - задайте тип компрессии. Нет компрессии - будет создан простой .tar.

Split output into - эта опция позволяет порезать архив, например на куски по 4 Гб для записи на DVD-диски. Куски будут именоваться в соответствии с поведением утилиты split: host.0.tar.gz.aa, следующий host.0.tar.gz.ab и так далее.

Когда архив будет создан, переместите файлы на съемные носители.

Восстановление из архива

Скопируйте все файлы в один каталог и отдайте команды:

mkdir restore
cd restore
cat ../host.0.tar.gz.* | tar zx

Теперь все файлы в первозданном виде в директории restore и вы можете манипулировать ими обычным для BackupPC образом.

На этом всё.
Al
 
Сообщения: 124
Зарегистрирован: Пн окт 22, 2007 9:41 pm


Вернуться в Сервер

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron