Bacula/Восстановление системы: различия между версиями
(Добавлено предисловие и описание создания бекапа) |
Нет описания правки |
||
(не показаны 4 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
== Предисловие == | == Предисловие == | ||
Предположим что у вас уже настроена [[Bacula|Bacula]] на сервере и клиенте, есть готовый полный [https://www.altlinux.org/Bacula#Описание_наборов_файлов бекап] системы и подготовлен [[Rescue|спасательный LiveCD]]. | Предположим, что у вас уже настроена [[Bacula|Bacula]] на сервере и клиенте, есть готовый полный [https://www.altlinux.org/Bacula#Описание_наборов_файлов бекап] системы и подготовлен [[Rescue|спасательный LiveCD]]. | ||
Рассмотрим сценарий полного восстановление системы "С нуля" - если изначальная система умерла, но | Рассмотрим сценарий полного восстановление системы "С нуля" - если изначальная система умерла, но остался полный бекап, который можно создать при помощи изначального конфига ''fullset.conf''. | ||
Параметры восстанавливаемой машины: | Параметры восстанавливаемой машины: | ||
Строка 8: | Строка 8: | ||
* Ipv4adress: '''''192.168.122.100''''' | * Ipv4adress: '''''192.168.122.100''''' | ||
* Bacula client name: '''''samba1''''' | * Bacula client name: '''''samba1''''' | ||
* Bacula client password: '''''123''''' | |||
Параметры клиента bacula-fd: | |||
[root@bacula ~]# cat /etc/bacula/client.d/samba1.conf | |||
Client { | |||
Name = samba1 | |||
Address = 192.168.122.100 | |||
FDPort = 9102 | |||
Catalog = MyCatalog | |||
Password = "123" | |||
File Retention = 30 days | |||
Job Retention = 6 months | |||
AutoPrune = yes | |||
} | |||
== Создание полного бекапа == | == Создание полного бекапа == | ||
Строка 82: | Строка 96: | ||
10 Full 214,692 6.674 G OK 27-ма-2024 16:18 BackupFullSet | 10 Full 214,692 6.674 G OK 27-ма-2024 16:18 BackupFullSet | ||
... | ... | ||
== Подготовка системы == | |||
Теперь представим, что система dc.test.alt умерла безвозвратно. От неё на память остался только ip адрес, бекап и пароль клиента Bacula. Для её восстановления нам нужно провести чистую установку системы. Подойдёт любая, но в данном случае был использована минимальная инсталляция Альт Сервера 10.2. | |||
После установки и загрузки системы ставим в неё клиент bacula: | |||
[root@host-198 ~]# apt-get update | |||
[root@host-198 ~]# apt-get install bacula13-client -y | |||
После чего вносим в ''/etc/bacula/bacula-fd-password.conf'' пароль клиента, который находится на сервере bacula в ''/etc/bacula/client.d/samba1.conf''. | |||
Действия на установленной системе закончены, её можно выключать. | |||
== Восстановление системы == | |||
=== Настройка сети === | |||
Теперь необходимо загрузиться с Rescue и поддержкой сети (Пункт 4 в меню загрузки: ''Rescue with remote SSH access (DHCP)'' ) | |||
После чего необходимо сделать так, чтобы ip адреса запущенной Rescue системы и ip адрес клиента bacula samba1 совпадали. Возможны два варианта: | |||
'''Вариант 1:''' Поменять ip адрес системы. | |||
Изначально машиной по DHCP получен адрес 192.168.122.198. Конкретные данные можно посмотреть при помощи команды ''ip a'' | |||
Адрес необходимо заменить на старый адрес контроллера домена: 192.168.122.100: | |||
ip a del 192.168.122.198/24 dev enp1s0 | |||
ip a add 192.168.122.100/24 dev enp1s0 | |||
'''Вариант 2:''' Поменять ip адрес клиента. | |||
Для этого нужно отредактировать файл конфигурации, находящийся на сервере bacula в директории ''/etc/bacula/client.d/'', заменив адрес на тот, который имеет запущенная Rescue система. | |||
=== Монтирование системы === | |||
В данном случае система расположена на /dev/vda | |||
mount /dev/vda /mnt | |||
mount -o bind /dev /mnt/dev | |||
mount -o bind /proc /mnt/proc | |||
mount -o bind /run /mnt/run | |||
mount -o bind /sys /mnt/sys | |||
=== Запуск клиента bacula-fd === | |||
Запуск происходит через chroot. Предварительно необходимо создать директорию для сохранения PID процесса. | |||
mkdir /mnt/var/run/bacula | |||
chroot /mnt /usr/sbin/bacula-fd -c /etc/bacula/bacula-fd.conf | |||
Проверить, запущен ли клиент, можно при помощи команды ss | |||
[root@localhost ~]# ss -lntup | |||
... | |||
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process | |||
tcp LISTEN 0 50 0.0.0.0:9102 0.0.0.0:* users:(("bacula-fd",pid=3350,fd=4)) | |||
... | |||
Если что-то идёт не так, то можно запустить клиент с флагом '''''-f''''', тогда будут выведены сообщения о возможных ошибках. | |||
=== Восстановление системы === | |||
'''Дальнейшие действия нужно проводить на сервере bacula''' | |||
Теперь, когда всё подготовлено, можно приступать непосредственно к восстановлению системы. Открываем '''''bconsole''''': | |||
[root@bacula ~]# bconsole | |||
*'''''restore where=/ client=samba1 jobid=10''''' | |||
Building directory tree for JobId(s) '''''10''''' ... | |||
214,692 files inserted into the tree. | |||
You are now entering file selection mode where you add (mark) and | |||
remove (unmark) files to be restored. No files are initially added, unless | |||
you used the "all" keyword on the command line. | |||
Enter "done" to leave this mode. | |||
cwd is: / | |||
$ '''''mark *''''' | |||
214,692 files marked. | |||
$ '''''done''''' | |||
Bootstrap records written to /var/lib/bacula/dir.restore.5.bsr | |||
The Job will require the following (*=>InChanger): | |||
Volume(s) Storage(s) SD Device(s) | |||
=========================================================================== | |||
b0001 File FileStorage | |||
Volumes marked with "*" are in the Autochanger. | |||
214,692 files selected to be restored. | |||
Run Restore job | |||
JobName: RestoreFiles | |||
Bootstrap: /var/lib/bacula/dir.restore.5.bsr | |||
Where: / | |||
Replace: Always | |||
FileSet: Full Set | |||
Backup Client: samba1 | |||
Restore Client: samba1 | |||
Storage: File | |||
When: 2024-03-27 18:26:23 | |||
Catalog: MyCatalog | |||
Priority: 10 | |||
Plugin Options: *None* | |||
OK to run? (yes/mod/no): '''''yes''''' | |||
Job queued. JobId=14 | |||
Здесь: | |||
* '''restore''' - команда восстановление из бекапа | |||
* '''where=/''' - параметр, указывающий в какую директорию будут выгружаться файлы. В случае полного восстановления системы - это корень. | |||
* '''client=samba1''' - параметр, указывающий на какой машине восстанавливать систему. В этом случае - это samba1. | |||
* '''jobid=10''' - параметр, указывающий из какого бекапа производить восстановление. Его значение было получено в разделе [[Bacula/Восстановление_системы#Создание_полного_бекапа |Создание полного бекапа]] | |||
После старта задачи, начнётся восстановление системы. | |||
Статус восстановления можно посмотреть следующим образом: | |||
*'''''status director''''' | |||
... | |||
Terminated Jobs: | |||
JobId Level Files Bytes Status Finished Name | |||
15 Restore 214,692 6.674 G OK 27-ма-2024 18:30 RestoreFiles | |||
... | |||
=== Подготовка к загрузке === | |||
'''Возвращаемся на Rescue систему''' | |||
В ходе восстановления, bacula создаёт временное хранилище файлов в корне системы. Его нужно нужно удалить. | |||
[root@localhost ~]# rm -rf --dir /mnt/bacula-restores/ | |||
После чего необходимо восстановить загрузчик (См. [[Переустановка_GRUB|соответствующую статью]]) | |||
И, завершающим действием, необходимо отредактировать fstab, обновив UUID диска: | |||
[root@localhost ~]# blkid /dev/vda | |||
/dev/vda: UUID="debf13e0-ef3c-484f-9d0c-a3d55300e9b2" BLOCK_SIZE="4096" TYPE="ext4" PTTYPE="dos" | |||
[root@localhost ~]# vim /mnt/etc/fstab | |||
'''Машину можно перезагружать, восстановление закончено''' | |||
== Ссылки == | |||
* http://www.bacula.org | |||
* [http://ru.wikibooks.org/wiki/Bacula Учебник на русском] | |||
* https://www.bacula.org/5.2.x-manuals/en/main/main/Disaster_Recovery_Using_Bac.html | |||
[[Категория:Backup]] | |||
{{Category navigation|title=Резервное копирование|category=Backup|sortkey={{SUBPAGENAME}}}} | |||
[[Категория:Bacula]] | |||
{{Category navigation|title=Bacula|category=Bacula|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 19:16, 27 марта 2024
Предисловие
Предположим, что у вас уже настроена Bacula на сервере и клиенте, есть готовый полный бекап системы и подготовлен спасательный LiveCD.
Рассмотрим сценарий полного восстановление системы "С нуля" - если изначальная система умерла, но остался полный бекап, который можно создать при помощи изначального конфига fullset.conf.
Параметры восстанавливаемой машины:
- Hostname: dc.test.alt
- Ipv4adress: 192.168.122.100
- Bacula client name: samba1
- Bacula client password: 123
Параметры клиента bacula-fd:
[root@bacula ~]# cat /etc/bacula/client.d/samba1.conf Client { Name = samba1 Address = 192.168.122.100 FDPort = 9102 Catalog = MyCatalog Password = "123" File Retention = 30 days Job Retention = 6 months AutoPrune = yes }
Создание полного бекапа
Открываем bconsole на сервере:
[root@bacula ~]# bconsole *run A job name must be specified. The defined Job resources are: 1: BackupCatalog 2: BackupFullSet 3: RestoreFiles Select Job resource (1-3): 2 Run Backup job JobName: BackupFullSet Level: Incremental Client: fd FileSet: Full Set Pool: Default (From Job resource) Storage: File (From Job resource) When: 2024-03-27 16:05:42 Priority: 10 OK to run? (yes/mod/no): mod Parameters to modify: 1: Level 2: Storage 3: Job 4: FileSet 5: Client 6: When 7: Priority 8: Pool 9: Plugin Options Select parameter to modify (1-9): 5 The defined Client resources are: 1: fd 2: samba1 Select Client (File daemon) resource (1-2): 2 Run Backup job JobName: BackupFullSet Level: Incremental Client: samba1 FileSet: Full Set Pool: Default (From Job resource) Storage: File (From Job resource) When: 2024-03-27 16:05:42 Priority: 10 OK to run? (yes/mod/no): yes Job queued. JobId=10
Здесь жирным курсивом выделен пользовательский ввод.
Посмотреть статус бекапа можно следующим образом:
*status director ... Running Jobs: Console connected using TLS at 27-ма-2024 15:57 JobId Type Level Files Bytes Name Status ====================================================================== 10 Back Incr 134,239 2.721 G BackupFullSet is running ...
После успешного создания бекапа он будет отображён следующим образом:
*status director ... Terminated Jobs: JobId Level Files Bytes Status Finished Name ==================================================================== 10 Full 214,692 6.674 G OK 27-ма-2024 16:18 BackupFullSet ...
Подготовка системы
Теперь представим, что система dc.test.alt умерла безвозвратно. От неё на память остался только ip адрес, бекап и пароль клиента Bacula. Для её восстановления нам нужно провести чистую установку системы. Подойдёт любая, но в данном случае был использована минимальная инсталляция Альт Сервера 10.2.
После установки и загрузки системы ставим в неё клиент bacula:
[root@host-198 ~]# apt-get update [root@host-198 ~]# apt-get install bacula13-client -y
После чего вносим в /etc/bacula/bacula-fd-password.conf пароль клиента, который находится на сервере bacula в /etc/bacula/client.d/samba1.conf.
Действия на установленной системе закончены, её можно выключать.
Восстановление системы
Настройка сети
Теперь необходимо загрузиться с Rescue и поддержкой сети (Пункт 4 в меню загрузки: Rescue with remote SSH access (DHCP) )
После чего необходимо сделать так, чтобы ip адреса запущенной Rescue системы и ip адрес клиента bacula samba1 совпадали. Возможны два варианта:
Вариант 1: Поменять ip адрес системы.
Изначально машиной по DHCP получен адрес 192.168.122.198. Конкретные данные можно посмотреть при помощи команды ip a
Адрес необходимо заменить на старый адрес контроллера домена: 192.168.122.100:
ip a del 192.168.122.198/24 dev enp1s0 ip a add 192.168.122.100/24 dev enp1s0
Вариант 2: Поменять ip адрес клиента.
Для этого нужно отредактировать файл конфигурации, находящийся на сервере bacula в директории /etc/bacula/client.d/, заменив адрес на тот, который имеет запущенная Rescue система.
Монтирование системы
В данном случае система расположена на /dev/vda
mount /dev/vda /mnt mount -o bind /dev /mnt/dev mount -o bind /proc /mnt/proc mount -o bind /run /mnt/run mount -o bind /sys /mnt/sys
Запуск клиента bacula-fd
Запуск происходит через chroot. Предварительно необходимо создать директорию для сохранения PID процесса.
mkdir /mnt/var/run/bacula chroot /mnt /usr/sbin/bacula-fd -c /etc/bacula/bacula-fd.conf
Проверить, запущен ли клиент, можно при помощи команды ss
[root@localhost ~]# ss -lntup ... Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port Process tcp LISTEN 0 50 0.0.0.0:9102 0.0.0.0:* users:(("bacula-fd",pid=3350,fd=4)) ...
Если что-то идёт не так, то можно запустить клиент с флагом -f, тогда будут выведены сообщения о возможных ошибках.
Восстановление системы
Дальнейшие действия нужно проводить на сервере bacula
Теперь, когда всё подготовлено, можно приступать непосредственно к восстановлению системы. Открываем bconsole:
[root@bacula ~]# bconsole *restore where=/ client=samba1 jobid=10 Building directory tree for JobId(s) 10 ... 214,692 files inserted into the tree. You are now entering file selection mode where you add (mark) and remove (unmark) files to be restored. No files are initially added, unless you used the "all" keyword on the command line. Enter "done" to leave this mode. cwd is: / $ mark * 214,692 files marked. $ done Bootstrap records written to /var/lib/bacula/dir.restore.5.bsr The Job will require the following (*=>InChanger): Volume(s) Storage(s) SD Device(s) =========================================================================== b0001 File FileStorage Volumes marked with "*" are in the Autochanger. 214,692 files selected to be restored. Run Restore job JobName: RestoreFiles Bootstrap: /var/lib/bacula/dir.restore.5.bsr Where: / Replace: Always FileSet: Full Set Backup Client: samba1 Restore Client: samba1 Storage: File When: 2024-03-27 18:26:23 Catalog: MyCatalog Priority: 10 Plugin Options: *None* OK to run? (yes/mod/no): yes Job queued. JobId=14
Здесь:
- restore - команда восстановление из бекапа
- where=/ - параметр, указывающий в какую директорию будут выгружаться файлы. В случае полного восстановления системы - это корень.
- client=samba1 - параметр, указывающий на какой машине восстанавливать систему. В этом случае - это samba1.
- jobid=10 - параметр, указывающий из какого бекапа производить восстановление. Его значение было получено в разделе Создание полного бекапа
После старта задачи, начнётся восстановление системы.
Статус восстановления можно посмотреть следующим образом:
*status director ... Terminated Jobs: JobId Level Files Bytes Status Finished Name 15 Restore 214,692 6.674 G OK 27-ма-2024 18:30 RestoreFiles ...
Подготовка к загрузке
Возвращаемся на Rescue систему
В ходе восстановления, bacula создаёт временное хранилище файлов в корне системы. Его нужно нужно удалить.
[root@localhost ~]# rm -rf --dir /mnt/bacula-restores/
После чего необходимо восстановить загрузчик (См. соответствующую статью)
И, завершающим действием, необходимо отредактировать fstab, обновив UUID диска:
[root@localhost ~]# blkid /dev/vda /dev/vda: UUID="debf13e0-ef3c-484f-9d0c-a3d55300e9b2" BLOCK_SIZE="4096" TYPE="ext4" PTTYPE="dos" [root@localhost ~]# vim /mnt/etc/fstab
Машину можно перезагружать, восстановление закончено