Бекап з допомогою Open Source рішення — Bareos



Наявність актуального бекапа під рукою є вкрай важливим моментом, бо ніхто не застрахований від прикрих випадків, пов'язаних з виходом з ладу носіїв, втрати інформації, випадкового видалення і т. д. В таких ситуаціях резервна копія збереже не лише нерви, а також позбавить від можливих фінансових проблем, які можуть виникнути із-за втрати даних.

Bareos – була вибрана система резервного копіювання з таких причин:

  • є Open Source;
  • активно розвивається;
  • має безліч корисних функцій;
  • може розширювати свій функціонал завдяки плагінів.
Опис завдання
Припустимо у нас є 3 машини. Сервери: Bareos, BitrixVm, Windows Server 2012 R2. Для прикладу все це буде знаходитися в межах однієї мережі, але сам Bareos, звичайно ж, дозволяє виконувати резервне копіювання якщо машина перебувати за її межами.

Bareos — 172.16.10.10
BitrixVM — 172.16.10.11
Windows Server — 172.16.10.12
Для сервера Bareos будемо використовувати CentOS 7. Відбувається звичайна установка:

# yum install -y bareos-client bareos-database-tools bareos-filedaemon bareos-database-mysql bareos bareos-bconsole bareos-database-common bareos-storage bareos-director bareos-common

В якості бази даних буде використовуватися PostgreSQL. Установка відбувається також просто:

# yum install -y postgresql-server, postgresql-contrib

При установці Bareos в /etc/bareos маємо наступний список файлів і папок, за винятком директорії «ssl», перейдемо до неї трохи пізніше:

/bareos-dir.d
/bareos-sd.d
/ssl
bareos-dir.conf
bareos-fd.conf
bareos-sd.conf
bconsole.conf
.rndpwd

Після установки в директорії /usr/lib/bareos/scripts/ з'являться підготовлені скрипти для роботи з Bareos. Завдяки їм виконаємо попереднє налаштування бази даних створимо базу, таблиці, і права):

su postgres -c /usr/lib/bareos/scripts/create_bareos_database
su postgres -c /usr/lib/bareos/scripts/make_bareos_tables
su postgres -c /usr/lib/bareos/scripts/grant_bareos_privileges

Важливим моментом є те, що імена наших машин повинні резолвиться, якщо ні, то додамо відповідні рядки в /etc/hosts

172.16.10.10 bareos-server
172.16.10.10 bareos-fd
172.16.10.11 bitrixvm
172.16.10.12 win-fd

bareos-server — сам сервер, bareos-fd — також будемо робити бекап самого сервера, тобто в той же час, буде виступати як клієнт, далі в конфігурації це буде видно, bitrixvm — назву клієнта говорить сама за себе, win-fd — клієнт з Windows Server 2012 R2.

Налаштування серверної частини для BareOS, а саме директора, необхідно виконати у файлі bareos-dir.conf. Директор відповідає за всі виконувані операції.

З основних директив:

Director — опис самого директора,
Storage — пристрій на яке пишемо бекапи,
Catalog — містить інформацію по виконаним Job, збережених файлів, клієнтам, статусів,
Messages — які повідомлення будуть зібрані і як їх доставляти,
Console — настройка консолі для управління директором,
Client — опис клієнта, з якого будуть зніматися резервні копії,
Pool — дозволяє управляти т. н. Volume куди будуть писатися дані для різних типів бекапа (Full, Incremental, Differential), обмежити терміни зберігання Volume, розміри,
FileSet — що бэкапим і додаткові атрибути,
Schedule — розклад,
Job — опис завдання по бэкапу.
З офіційної документації схема взаємодії між службами:



Вміст файлу bareos-dir.conf:Director {
#Обов'язковий параметр ім'я директора
Name = bareos-server
# Обов'язковий параметр для файлів запитів
QueryFile = "/usr/lib/bareos/scripts/query.sql"
# Кількість одночасно виконуваних Job
Maximum Concurrent Jobs = 10
# Пароль (найчастіше використовується 20-40 символів, для тіста обмежимося 9 знаками)
Password = «zcx@#$BGj»
# Вказівка які оповіщення використовувати (директива Message описано далі)
Messages = Standart
# TLS шифрування. Буде описано далі.
# TLS включено
TLS Enable = yes
TLS Require = yes

TLS Verify Peer = yes
#Дозволені CN
TLS Allowed CN = «bareos-server»
TLS Allowed CN = «bitrixvm»
TLS Allowed CN = «win-fd»
# Розташування CA сертифіката
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
# Розташування сертифікат
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
# Розташування ключа до сертифікату
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Storage {
Name = bareos-server-sd
# Можна вказати як по IP так і по імені, для коректної роботи TLS важливо вказувати по #імені
Address = bareos-server
Password = «zcx@#$BGj»
# Задається ім'я для пристрою де будуть храненится дані. Параметри пристрої встановлені у файлі bareos-sd.conf
Device = bareos-sd
Media Type = File
Port = 9103
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Catalog {
#Задаються всі параметри для підключення до БД
Name = bareos-server
dbdriver = «postgresql»
dbname = «bareos»
dbuser = «bareos»
dbpassword = ""
}

Messages {
# Описуються типи повідомлень, які повинні бути відправлені і записані в лог
Name = Standart
mail = root@localhost = all !skipped, !audit
console = all !skipped, !saved, !audit
append = "/var/log/bareos/bareos.log" = all !skipped, !audit
append = "/var/log/bareos/bareos-audit.log" = audit
}

Client {
# Ім'я клієнта для бекапа
Name = bareos-fd
# Назва каталогу
Catalog = bareos-server
Enabled = yes
# Адреса задаємо ім'ям
Address = bareos-server
Password = «zcx@#$BGj»
Port = 9102
# Параметри TLS будуть описані пізніше
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Pool {
# Ім'я пулу для повного бекапа
Name = bareos-pool -Full
# Автоматично дописує до файлу з бекапом мітку виду «bareos-client-Full-» + номер #Volume
#Наприклад підсумкове назва Volume після чергового бекапа буде мати вигляд bareos-client-# Full-0009
Label Format = «bareos-client-Full-»
# Тип пулу. По офіційній документації BareOS на даний момент здійснюється #тільки тип Backup
Pool Type = Backup
# Volume для повного бекапа зберігатися 3 місяці
Volume Retention = 3 months
# після чого каталог очищається від застарілих даних
AutoPrune = yes
# Volume перезаписується
Recycle = yes
}

Pool {
# Ім'я пулу для інкрементального бекапу
Name = bareos-pool-Incremental
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 10 days
Label Format = «bareos-client-Incremental-»
}

Pool {
# Ім'я пулу для диференціального бекапа
Name = bareos-pool-Differential
Pool Type = Backup
Recycle = yes
Auto Prune = yes
Volume Retention = 11 days
Label Format = «bareos-client-Differential-»
}

FileSet {
# Задаємо ім'я для набору файлів
Name = bareos-fileset
# Include указажем які файли будуть зберігатися. В даному випадку тека /etc
Include {
File = "/etc"
}
}

Schedule {
#Ім'я розкладу
Name = «MonthlyCycle»
# 1 раз в тиждень виконується повний бекап
Run = Level = Full mon at 2:00
# Протягом дня 5 інкрементальних бекапів щогодини
Run = Level= Incremental hourly at 13:00
Run = Level = Incremental hourly at 14:00
Run = Level = Incremental hourly at 15:00
Run = Level = Incremental hourly at 16:00
Run = Level = Incremental hourly at 17:00
}

Job {
# Назва для задачі
Name = Job-Full
# Тип. Може бути Backup або Restore
Type = Backup
# Рівень бекапа. Full, Differential або Incremental
Level = Incremental
# Для якого клієнта виконується Job
Client = bareos-fd
# Набір файлів
FileSet = bareos-fileset
# Розклад
Schedule = «MonthlyCycle»
# Назва використовуваного Storage
Storage = bareos-server-sd
# Оповіщення
Messages = Standart
# Використовуваний пул
Pool = bareos-pool -Full
Full Backup Pool = bareos-pool -Full
Differential Backup Pool = bareos-pool-Differential
Incremental Backup Pool = bareos-pool-Incremental
}

Job {
Name = Job-Full-restore
Type = Restore
Client = bareos-fd
FileSet = «bareos-fileset»
Storage = bareos-server-sd
Pool = bareos-pool -Full
Messages = Standart
# Вказівка шляху куди при відновленні потраплять всі файли
Where = /tmp
}

# Додаємо в якості окремих файлів конфігурації двох інших клієнтів.

@/etc/bareos/bareos-dir.d/win.conf
@/etc/bareos/bareos-dir.d/bitrixvm.conf

Важливо щоб була відповідність між конфігураціями:


Далі налаштуємо Storage в bareos-sd.conf:Storage {
# Ім'я
Name = bareos-server-sd
# Максимальна кількість одночасно запущених Job
Maximum Concurrent Jobs = 20
# Адреса, вказуємо на ім'я
SDAddress = bareos-server
SDPort = 9103
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = no
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Director {
# Описуємо параметри директора, який може підключатися до Storage
Name = bareos-server
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Device {
# Описуємо сам пристрій для зберігання
Name = bareos-sd
Media Type = File
# Шлях до пристрою
Archive Device = /opt/backup
# Дозволити автоматично розмічати тома
LabelMedia = yes
# Для одночасного доступу при одночасному виконанні декількох завдань
Random Access = yes
# Автоматично монтувати пристрій
AutomaticMount = yes
RemovableMedia = no
AlwaysOpen = no
}

Messages {
Name = Standard
director = bareos-server = all
}

Налаштування клієнта bareos-fd.conf:

Director {
# Настройки для підключення директора
Name = bareos-server
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

FileDaemon {
# FileDaemon синонім Client
Name = bareos-fd
Maximum Concurrent Jobs = 20
# Відключається сумісність з Bacula. В такому випадку включаються всі можливості #bareos, які включені за замовчуванням.
Compatible = no
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem

}

Messages {
Name = Standard
director = bareos-server = all
}

Після всіх основних налаштувань потрібно перезапустити служби bareos:

systemctl restart bareos-dir
systemctl restart bareos-sd
systemctl restart bareos-fd

У разі виникнення помилок стан дивимося командою:

systemctl status bareos-dir.service -l

Перейдемо до встановлення плагіну bareos клієнта для Windows. Можна завантажити тут.

Установка плагіна проходить також просто. Із списку пропонованих компонентів вибираємо тільки два зазначених на скріншоті: далі задаємо ім'я клієнта, вказуємо параметри вже наявного директора:



Прописуємо такі дані:

Client Name — win-fd
Director Name — bareos-server
Password — zcx@#$BGj
Networks Address — bareos-server
Введені налаштування завжди можна підправити, файл конфігурації за замовчуванням лежить в «C:\Program Data\Bareos\bareos-fd.conf».

У файлі hosts також вказуємо IP сервера BareOS, щоб ім'я резолвилось. З боку сервера (bareos-server) конфіг для клієнта (win-fd) виглядає наступним чином і перебувати по шляху /etc/bareos/bareos-dir.d/win.conf:

РозгорнутиClient {
Name = win-fd
Address = win-fd
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
}

Pool {
Name = win-bareos-pool-Full
Auto Prune = yes
Label Format = «bareos-client-Full-»
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 3 months
}

Pool {
Name = win-bareos-pool-Differential
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 11 days
Label Format = «win-bareos-client-Differential-»
}

Pool {
Name = win-bareos-pool-Incremental
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 10 days
Label Format = «win-bareos-client-Incremental-»
}

FileSet {
Name = bareos-fileset-win
Include {
File = «C:\\Users\\»
}
}

Job {
Name = Job-win-Full
Type = Backup
Level = Incremental
Client = win-fd
FileSet = bareos-fileset-win
Schedule = «MonthlyCycle»
Storage = bareos-server-sd
Messages = Standart
Pool = win-bareos-pool-Incremental
Full Backup Pool = win-bareos-pool-Full
Differential Backup Pool = win-bareos-pool-Differential
Incremental Backup Pool = bareos-pool-Incremental
}

Job {
Name = Job-win-Full-restore
Type = Restore
Client = win-fd
FileSet = «bareos-fileset-win»
Storage = bareos-server-sd
Pool = win-bareos-pool-Full
Messages = Standart
Where = «C:/tmp»
}

З директиви FileSet бачимо, що для задачі Job-win-Full копіюємо папку користувачів «C:\Users» і в задачі Job-win-Full-restore відновлюємо її в папку при необхідності «C:\tmp».

Залишився ще один клієнт (bitrixvm) для якого потрібно виконувати копіювання кореневої директорії і в окремій задачі копіювання бази даних mysql.

Перейдемо на машину bitrixvm і виконаємо установку клієнта:
yum install -y bareos-client bareos-common

Перейдемо в каталог /etc/bareos

/bareos-dir.d
/bareos-fd.d
/bconsole.conf
/ssl
.rndpwd
tray-monitor.d

Для налаштування клієнта перейдемо в каталог /bareos-fd.d

/client
/director
/messages

За замовчуванням, після установки конфігурація розкидана на три показані вище директорії, тому для зручності подальшого закомитируем часткові конфігурації в директоріях director messages, і виконаємо всі налаштування в /client/myself.conf
РозгорнутиClient {
Name = bitrixvm
Maximum Concurrent Jobs = 20
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bitrixvm.cert.pem
TLS Key = /etc/bareos/ssl/bitrixvm.nopass.key.pem
compatible = no
}

Director {
Name = bareos-server
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bitrixvm.cert.pem
TLS Key = /etc/bareos/ssl/bitrixvm.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Messages {
Name = Standard
Director = bareos-server = all !skipped, !restored
Description = «Send messages to the relevant Director.»
}

Вносимо параметри і перезапускаємо службу:

/etc/init.d/bareos-fd restart

Прописуємо в hosts адреса для bareos-server

З боку сервера (bareos-server) конфігурація для клієнта (bitrixvm) виглядає наступним чином і перебувати — /etc/bareos/bareos-dir.d/bitrixvm.conf:

РозгорнутиClient {
Name = bitrixvm
Address = bitrixvm
Password = «zcx@#$BGj»
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem

}

Pool {
Name = bitrixvm-bareos-pool-Full
Label Format = «bitrixvm-bareos-client-Full-»
Pool Type = Backup
AutoPrune = yes
Recycle = yes
Volume Retention = 3 months
}

Pool {
Name = bitrixvm-bareos-pool-Differential
Pool Type = Backup
Label Format = «bitrixvm-bareos-client-Differential-»
AutoPrune = yes
Recycle = yes
Select Job resource (1-6): = 11 days
}

Pool {
Name = bitrixvm-bareos-pool-Incremental
Pool Type = Backup
Label Format = «bitrixvm-bareos-client-Incremental-»
AutoPrune = yes
Recycle = yes
Volume Retention = 10 days
}

Job {
Name = Job-bitrixvm-mysql
Type = Backup
Level = Full
Client = bitrixvm
FileSet = bareos-fileset-bitrixvm-mysql
Schedule = «MonthlyCycle»
Storage = bareos-server-sd
Messages = Standart
Pool = bitrixvm-bareos-pool-Incremental
Full Backup Pool = bitrixvm-bareos-pool-Full
Differential Backup Pool = bitrixvm-bareos-pool-Differential
Incremental Backup Pool = bitrixvm-bareos-pool-Incremental

RunScript {
# Виконаємо скрипт описаний в цій секції до виконання бекапа
RunsWhen = Before
# Запускати скрипт, якщо завдання (Job) не буде виконана успішно
RunsOnFailure = Yes
RunsOnClient = Yes
#
#Сама команда для скрипта
Command = «sh -c 'mysqldump -uroot -ppassword --opt --all-databases > /tmp/dump.sql'»
}
}

Job {
Name = Job-bitrixvm-Full
Type = Backup
Level = Full
Client = bitrixvm
FileSet = bareos-fileset-bitrixvm
Schedule = «MonthlyCycle»
Storage = bareos-server-sd
Messages = Standart
Pool = bitrixvm-bareos-pool-Incremental
Full Backup Pool = bitrixvm-bareos-pool-Full
Differential Backup Pool = bitrixvm-bareos-pool-Differential
Incremental Backup Pool = bitrixvm-bareos-pool-Incremental
}

FileSet {
Name = bareos-fileset-bitrixvm
Include {
Options {
compression = GZIP
}
File = "/"
}
}

FileSet {
Name = bareos-fileset-bitrixvm-mysql
Include {
Options {
# Ставимо тип стиснення
compression = GZIP
signature = MD5
}
File = "/tmp/dump.sql"
}
}

Job {
Name = Job-bitrixvm-mysql-restore
Type = Restore
Client = bitrixvm
FileSet = «bareos-fileset-bitrixvm-mysql»
Storage = bareos-server-sd
Pool = bitrixvm-bareos-pool-Full
Messages = Standart
Where = /tmp
}

Job {
Name = Job-bitrixvm-Full-restore
Type = Restore
Client = bitrixvm
FileSet = «bareos-fileset-bitrixvm»
Storage = bareos-server-sd
Pool = bitrixvm-bareos-pool-Full
Messages = Standart
Where = /tmp
}

У секції RunScript параметра Command ми запускаємо команду mysqldump, передавши всі необхідні параметри «mysqldump -uroot -ppassword --opt --all-databases > /tmp/dump.sql».

Збережений файл dump.sql буде після бэкапирован як зазначено для FileSet з назвою «bareos-fileset-bitrixvm-mysql».

Для шифрування передачі даних Bareos використовує протокол TLS. Для кожного клієнта і для директора у нас повинні бути CA сертифікат, сертифікат і ключ. Будемо використовувати самоподписанные сертифікати, все це можна зробити через openssl.

Перейдемо по шляху конфігураційного файлу openssl /etc/pki/tls/openssl.cnf

Генеруємо CA сертифікат:

#openssl req -config openssl.cnf -new -x509 -extensions v3_ca -keyout private/myca.key -out certs/myca.crt

Після введення пароля і інших даних отримаємо два файлу:

/etc/pki/CA/private/myca.key
/etc/pki/CA/certs/myca.crt

Підправимо/перевіримо файл налаштувань openssl.cnf щоб були вірно вказані шляху до сертифікатів, жирним виділено те, що потрібно буде змінити.

Також потрібно створити файли index.txt і serial в папці /etc/pki/CA:

touch /etc/pki/CA/index.txt

Файл serial відразу заносимо значення «01», в файлі буде міститися наступний номер для наступного сертифікатами:

echo '01' > /etc/pki/CA/serial

Вміст openssl.cnf:dir = /etc/pki/CA
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
#unique_subject = no

new_certs_dir = $dir/newcerts

certificate = $dir/certs/myca.crt
serial = $dir/serial
crlnumber = $dir/crlnumber

crl = $dir/crl.pem
private_key = $dir/private/myca.key
RANDFILE = $dir/private/.rand

x509_extensions = usr_cert
Генеруємо ключ для сервера, необхідно буде ввести пароль.

openssl genrsa -aes256 -out bareos-server.key.pem 4096

Генеруємо запит на сертифікат. Важливим моментом залишається те, що в даному пункті при генерації сертифіката необхідно правильно вказати Common Name (CN) щоб воно збігалося з ім'ям машини, інакше виникнуть помилки при спробах виконати якесь завдання. В даному прикладі CN = bareos-server
openssl req -config openssl.cnf -key bareos-server.key.pem -new -sha256 -out bareos-server.csr.pem

Підписуємо CSR через CA, отримуємо сам сертифікат

openssl ca -config openssl.cnf -in bareos-server.csr.pem -out bareos-server.cert.pem

Прибираємо пароль для ключа, т. к. bareos він потрібен безпарольный

openssl rsa -in bareos-server.key.pem -out bareos-server.nopass.key.pem

CA ключ і сертифікат перетворимо в один файл з розширенням PEM

cat /etc/pki/CA/private/myca.key /etc/pki/CA/certs/myca.cert > ca-chain.cert.pem

Генеруємо DH ключ

openssl dhparam -out dh1024.pem -5 1024

Копіюємо сертифікати bareos-server.cert.pem bareos-server.nopass.key.pem ca-chain.cert.pem dh1024.pem в папці /etc/bareos/ssl, яку попередньо потрібно створити і встановити групу bareos

Для кожного сертифіката міняємо групу на bareos

chgrp bareos *

Аналогічні дії потрібно виконати для кожного клієнта (bitrixvm, win-fd):

openssl genrsa -aes256 -out bitrixvm.key.pem 4096
openssl req -config openssl.cnf -key bitrixvm.key.pem -new -sha256 -out bitrixvm.csr.pem
openssl ca -config openssl.cnf -in bitrixvm.csr.pem -out bitrixvm.cert.pem
openssl rsa -in bitrixvm.key.pem -out bitrixvm.nopass.key.pem

Через SCP копіюємо 4 файлу bitrixvm.cert.pem bitrixvm.nopass.key.pem ca-chain.cert.pem dh1024.pem на віддалену машину bitrixvm в папці /etc/bareos/ssl, яку попередньо потрібно створити і встановити групу bareos як для папка так і для сертифікатів.

У конфігурації клієнта bitrixvm (/etc/bareos/bareos-fd.d/client/myself.conf) в секції Director {} необхідно щоб були прописані сертифікати клієнта, але не директора. У конфігурації на стороні сервера (/etc/bareos/bareos-dir.d/bitrixvm.conf) в секції Client {} зазначені сертифікати директора. Після внесення змін в конфігурації перезапустити служби.

Створення сертифікатів для машини win-fd ідентично.

Також потрібно прописати сертифікати для bconsole, утиліта, що дозволяє управляти директором у файлі /etc/bareos/bconsole.conf:

РозгорнутиDirector {
Name = bareos-server
DIRport = 9101
address = bareos-server
Password = «mmm_777»
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = «bareos-server»
TLS CA Certificate File = /etc/bareos/ssl/ca-chain.cert.pem
TLS Certificate = /etc/bareos/ssl/bareos-server.cert.pem
TLS Key = /etc/bareos/ssl/bareos-server.nopass.key.pem
TLS DH File = /etc/bareos/ssl/dh1024.pem
}

Процедура копії або відновлення виглядає наступним чином. Скористаємося утилітою bconsole, як вітання побачимо *
run Покаже всі можливі Job:

Розгорнути*run
A job name must be specified.
The defined Job resources are:
1: Job-Full
2: Job-Full-restore
3: Job-bitrixvm-mysql
4: Job-bitrixvm-Full
5: Job-bitrixvm-mysql-restore
6: Job-bitrixvm-Full-restore
Select Job resource (1-6): 3

Run Backup job
JobName: Job-bitrixvm-mysql
Level: Full
Client: bitrixvm
Format: Native
FileSet: bareos-fileset-bitrixvm-mysql
Pool: bitrixvm-bareos-pool-Full (From Job FullPool override)
Storage: bareos-server-sd (From Job resource)
When: 2016-10-16 11:05:16
Priority: 10
OK to run? (yes/mod/no):
# Задача пішла на виконання отримує JobId
Job queued. JobId=75

Результат виконання команди можна переглянути або через команду message і у відповідь отримаємо приблизно таке:

Розгорнути16-Oct 11:05 bareos-server-sd JobId 75: Volume «bitrixvm-bareos-client-Full-0011» previously written, moving to end of data.
16-Oct 11:05 bareos-server-sd JobId 75: Ready to append to end of Volume «bitrixvm-bareos-client-Full-0011» size=2086097429
16-Oct 11:05 bareos-server-sd JobId 75: Elapsed time=00:00:01, Transfer rate=319.2 K Bytes/second
16-Oct 11:05 bareos-server JobId 75: Bareos bareos-server 15.2.2 (16Nov15):
Build OS: x86_64-redhat-linux-gnu redhat CentOS Linux release 7.0.1406 (Core)
JobId: 75
Job: Job-bitrixvm-mysql.2016-10-16_11.05.38_07
Backup Level: Full
Client: «bitrixvm» 16.3.1 (01Jul16) x86_64-redhat-linux-gnu,redhat,CentOS release 6.6 (Final),CentOS_6,x86_64
FileSet: «bareos-fileset-bitrixvm-mysql» 2016-10-14 04:57:40
Pool: «bitrixvm-bareos-pool-Full» (From Job FullPool override)
Catalog: «bareos-server» (From Client resource)
Storage: «bareos-server-sd» (From Job resource)
Scheduled time: 16-Oct-2016 11:05:16
Start time: 16-Oct-2016 11:05:42
End time: 16-Oct-2016 11:05:42
Elapsed time: 0 secs
Priority: 10
FD Files Written: 1
SD Files Written: 1
FD Bytes Written: 319,187 (319.1 KB)
SD Bytes Written: 319,285 (319.2 KB)
Rate: 0.0 KB/s
Software Compression: 71.0 % (gzip)
VSS: no
Encryption: no
Accurate: no
Volume name(s): bitrixvm-bareos-client-Full-0011
Volume Session Id: 3
Volume Session Time: 1476554202
Last Volume Bytes: 2,086,417,588 (2.086 GB)
Non-fatal FD errors: 0
SD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Backup OK

Або через команду status dir

РозгорнутиTerminated Jobs:
JobId Level Files Bytes Status Finished Name
====================================================================
72 Full 0 0 Error 15-Oct-16 13:39 Job-bitrixvm-Full
73 Full 49,442 515.4 M OK 15-Oct-16 14:03 Job-bitrixvm-Full
74 Incr 20 36.81 K OK 16-Oct-16 02:01 Job-Full
75 Full 1 319.1 K OK 16-Oct-16 11:05 Job-bitrixvm-mysql

Де по графі статус можна переглянути стан бекапа. Job з номером 75 пройшов успішно.

Відновлення відбувається по команді restore

*restore

Після чого буде запропонований список всіх можливих варіантів

To select the JobIds, you have the following choices:

1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter comma separated list of JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore found for JobIds
12: Select full restore to a specified Job date
13: Cancel
Покажемо список останніх 20 завдань:



Тиснемо 3 і вказуємо номер JobID, наприклад 75. Після цього автоматично попадаємо в консоль для вибору файлів, які хочемо відновити

cwd is: /
$

Список всіх доступних команд можна переглянути через команду help. Перевіряємо які файли є в наявності у даному бекапі, відзначаємо потрібні файли командою mark через вказівку файлів або через *, вибравши таким чином всі. По завершенні виконуємо команду done після чого піде діалог з системою.

$ ls
tmp/
$ cd tmp/
cwd is: /tmp/
$ ls
dump.sql
$ mark *
1 file marked.
$ done

The job will require the following
Volume(s) Storage(s) SD Device(s)
===========================================================================

bitrixvm-bareos-client-Full-0011 bareos-server-sd bareos-sd

Volumes marked with ".*" are online.

1 file selected to be restored.

Вибираємо потрібну нам завдання відновлення (пункт 2)

The defined Restore Job resources are:
1: Job-Full-restore
2: Job-bitrixvm-mysql-restore
3: Job-bitrixvm-Full-restore
Select Restore Job (1-3): 2

Задаємо клієнта для якого виконуємо відновлення (2)

Defined Clients:
1: bareos-fd
2: bitrixvm
3: win-fd
Select the Client (1-3): 2

Using Catalog «bareos-server»
Run Restore job
JobName: Job-bitrixvm-mysql-restore
Bootstrap: /var/lib/bareos/bareos-server.restore.1.bsr
Where: /tmp
Replace: Always
FileSet: bareos-fileset-bitrixvm-mysql
Backup Client: bitrixvm
Restore Client: bitrixvm
Format: Native
Storage: bareos-server-sd
When: 2016-10-16 11:26:54
Catalog: bareos-server
Priority: 10
Plugin Options: *None*
OK to run? (yes/mod/no): yes

Підтверджуємо завдання через yes, командою mod можна відредагувати параметри відновлення перед початком, в тому числі і змінити директорію для відновлення. Далі завданню призначається JobId.

Job queued. JobId=76

По команді status dir можна побачити стан відновлення. Як бачимо все пройшло успішно. Після цього можна переходити на віддалений клієнт, та в каталозі /tmp виявимо відновлений файл dump.sql.

76 1 1.100 M OK 16-Oct-16 11:27 Job-bitrixvm-mysql-restore

У висновку можна сказати, що Bareos активно розвивається, має у своєму арсеналі безліч корисних функцій, які залишилися за межами цієї статті, а наявність плагінів, які можуть розширити функціонал також справляють позитивне враження (резервне копіювання MS SQL, плагіни для зберігання даних на Ceph, Gluster, бекап LDAP).



SIM-Networksнадійне хмара в Німеччині, SSD хостинг і VPS.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.