Top.Mail.Ru
Восстановление или перенос сервера FreeBSD: настольное руководство за 30 минут — ADMINMED.ru

Восстановление или перенос сервера FreeBSD: настольное руководство за 30 минут

В работе системного администратора медицинского учреждения случаются самые разные ситуации. Оборудование имеет свойство выходить из строя, а аптайм — стремиться к нулю в самый неподходящий момент. Особенно остро этот вопрос стоит, когда на сервере развёрнута медицинская информационная система (МИС), биллинг или другой критически важный сервис.

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

В этой статье мы подробно, на практическом примере, разберём процесс восстановления сервера FreeBSD с использованием утилиты fsbackup и любого LiveCD.

Цель статьи: предложить читателям рабочий алгоритм действий для быстрого восстановления или миграции сервера FreeBSD в условиях ограниченного времени.

Уровень подготовки: материал рассчитан на специалистов, уже имеющих базовые навыки администрирования FreeBSD.

01. Что нам понадобится

Для успешного выполнения всех операций подготовьте:

  • Программа для архивации: fsbackup (доступна в портах /usr/ports/sysutils/fsbackup). Подробнее о ней можно почитать на OpenNet http://www.opennet.ru/dev/fsbackup/.
  • LiveCD с FreeBSD: автор использует Frenzy, но подойдёт любой удобный вам вариант (например, установочный диск FreeBSD).
  • Хранилище для бэкапа: локальный жёсткий диск, FTP-сервер, SMB-шара или флешка.

Программа fsbackup поддерживает:

  • локальное и удалённое (FTP/SSH) хранение архивов;
  • шифрование;
  • создание инкрементных копий.

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

02. Создаём резервную копию системы

Первым делом необходимо создать эталонный архив, который станет основой для восстановления.

Пример конфигурационного файла fsbackup

Для бэкапа всей системы автор использует следующий конфиг:

$cfg_backup_name = "srv12_domain_local";
$cfg_cache_dir = "/usr/local/fsbackup/cache";
$prog_md5sum = "md5sum -b";
$prog_tar = "/usr/bin/tar";
$prog_ssh = "/usr/bin/ssh";
$prog_rm = "/bin/rm";
$prog_gzip = "/usr/bin/gzip";
$prog_pgp = "gpg";
$cfg_checksum = "timesize";
$cfg_backup_style = "backup";
$cfg_increment_level = 7;
$cfg_save_old_backup = 1;
$cfg_type = "remote_ftp";
$cfg_remote_ftp_mode = 0;
$cfg_remote_password = "password";
$cfg_local_path = "/mnt/backup/srv12/system";
$cfg_time_limit = 0;
$cfg_size_limit = 0;
$cfg_maximum_archive_size = 0;
$cfg_root_path = "/";
$cfg_verbose = 2;
$cfg_stopdir_prune=0;
1;
__DATA__
#Архивируем весь сервер с корня /
#Указываем папки исключения, которые бэкапить не нужно
!/dev
!/mail
!/mnt
!/usr/ports
!/var/db/portsnap
!/usr/local/fsbackup/cache
!/web/squidcache
!/web/mysql
!/usr/src
!/usr/local/www/data-dist/netams

В приведённом примере архивируется весь сервер, за исключением ряда директорий (указаны в самом конце). В вашем случае список исключений может отличаться — настройте его под свои задачи.

Сохраняем скрипт восстановления

Вместе с архивом необходимо сохранить скрипт fsrestore.sh, который находится в /usr/local/fsbackup/scripts. Он понадобится нам на втором этапе.

03. Готовим целевой сервер

Теперь нужно подготовить «площадку», на которую будет разворачиваться наша система.

  1. Анализируем исходную конфигурацию. На исходном (рабочем) сервере откройте /etc/fstab и запомните список существующих разделов.
  2. Создаём аналогичные разделы. Размеры разделов могут не совпадать — достаточно просто наличия таких же точек монтирования. Автор рекомендует разбивать диск с помощью установочного диска FreeBSD (custom install) и устанавливать загрузчик.
  3. Копируем архив и скрипт. Перенесите ранее созданный бэкап и скрипт fsrestore.sh на целевой сервер любым удобным способом (флешка, FTP, сетевая шара).

04. Загружаемся с LiveCD и монтируем разделы

Это ключевой этап, от которого зависит успех всей операции.

  1. Загрузка. Загрузитесь с LiveCD (автор использует Frenzy).
  2. Размонтирование. LiveCD автоматически монтирует ваши разделы, но в режиме чтения. Поэтому сначала отмонтируем их: umount /dev/ad4s1a (и так со всеми разделами).
  3. Создаём точки монтирования. В папке /mnt создайте каталоги, соответствующие разделам вашей системы. В примере автора это:
    • /mnt/tmp
    • /mnt/usr
    • /mnt/var
    • /mnt/web
    • /mnt/mail
  4. Монтируем разделы. При этом корневой раздел (/) монтируем непосредственно в /mnt: mount /dev/ad4s1a /mnt mount /dev/ad4s1f /mnt/mail mount /dev/ad4s1d /mnt/tmp mount /dev/ad4s1e /mnt/usr mount /dev/ad4s1g /mnt/var mount /dev/ad4s1h /mnt/web
  5. Монтируем носитель с бэкапом. Если архив лежит на флешке: mount_ntfs /dev/da0s1 /mnt/backup Если на Windows-шаре: ifconfig eth0 192.168.0.15 netmask 255.255.255.0 ifconfig eth0 up mount_smbfs -I 192.168.0.2 -E koi8-r:cp866 //user@comp/shara /mnt/backup (подставьте свои значения IP-адресов, имени пользователя и шары).

05. Запускаем восстановление

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

  1. Редактируем скрипт fsrestore.sh. В нём нужно изменить всего две строчки: # Директория где находится бэкап. backup_path="/mnt/backup" # Корневая директория куда будут помещены данные восстановленные из бэкапа. restore_path="/mnt"
  2. Запускаем скрипт. Дождитесь завершения процесса. Для ускорения работы лучше скопировать архив локально, а затем запускать восстановление — это надёжнее и быстрее.
  3. Проверяем результат. После завершения в папке /mnt должна находиться точная копия вашего сервера.

06. Вносим финальные правки

Восстановление файлов — это ещё не всё. Необходимо адаптировать систему под новое оборудование.

  1. Редактируем /mnt/etc/fstab. Это самый важный пункт. Имена дисков на разных серверах могут отличаться. В примере автора на исходном сервере было зеркало ar0, а на целевом — одиночный диск ad4. Соответственно, в fstab нужно заменить все вхождения ar0 на ad4.
  2. Настраиваем сеть (при необходимости). Вы можете сразу отредактировать сетевые настройки в /mnt/etc/rc.conf, но это можно сделать и после первой загрузки.
  3. Восстанавливаем права доступа. Вместе с архивом fsbackup создаёт файл с расширением .dir, в котором хранится информация о правах доступа и владельцах всех файлов и папок. Во время восстановления скрипт не расставил эти права (так как путь был /mnt/, а не /). Поэтому после перезагрузки вам нужно будет сделать файл исполняемым и запустить его: chmod +x имя_файла.dir ./имя_файла.dir Эта команда полностью восстановит оригинальные права и владельцев.

После этого можно перезагружать сервер (не забыв извлечь LiveCD) и входить в уже полностью рабочую систему.

07. Резюме

Описаная методика многократно проверена автором на практике. Она действительно позволяет быстро и относительно просто восстановить сервер FreeBSD из резервной копии или перенести его на новое оборудование. Главное — не забыть про fstab и файл с правами доступа.


Помогла статья? Присылайте ваши материалы и предложения на почту admin@adminmed.ru. Если хотите, укажите ссылки на свои социальные сети — мы с радостью добавим их под публикацией. Давайте развивать профессиональное сообщество IT-специалистов в здравоохранении вместе!

Добавить комментарий

© 2026 ADMINMED.ru

Login





Loading...

Top.Mail.Ru
👁 0
  Яндекс.Метрика