Бэкап Linux и восстановление его на другом железе
Я работаю в организации с маленьким штатом, деятельность тесно связана с IT и у нас возникают задачи по системному администрированию. Мне это интересно и частенько я беру на себя решение некоторых.
На прошлой неделе мы настраивали FreePBX под debian 7.8, нанимали фрилансера. В процессе настройки оказалось, что сервер (да, я так называю обычный PC) не хочет грузится с HDD при подключенных USB 3G модемах, которые мы используем для звонков на мобильные, колупание BIOSа не помогло. Непорядок. Решил, что нужно перенести его на другую железяку. Так появилось сразу две связанные задачи:
- сделать бэкап сервера;
- восстановить бэкап на другом железе.
Опыт общения с linux-системами у меня небольшой: настройка VPN сервера на open-vpn, ftp-сервера и еще пара мелочей. Сам себя я характеризую как человека умеющего читать маны и править конфиги 🙂
Ниже я описываю свой частный случай и почему я поступил именно так. Надеюсь, новичкам будет полезно, а бородатые админы улыбнутся вспомнив молодость.
Начинаем копать теорию:
По созданию бэкапов уйма статей, я для себя отметил два способа: tar — упаковывает и сжимает все файлы, при этом не сохраняется MBR, мой бэкап будет весить около 1.5 Gb; dd — делает полную копию раздела, включая MBR и всю область, где нет файлов, архив будет равен размеру раздела, в моем случае ~490 Gb.
Второй способ требует наличия внешнего жесткого диска объемом не меньше раздела, который архивируем. Да и что с ним потом делать, непонятно, хранить на полочке? Остановился на tar, чуть сложнее в реализации, нужно будет создать MBR, но время создания/восстановления архива существенно меньше, хранить бэкап проще, полтора гига можно закинуть в облако и скачать, когда будет нужно. Записывать его можно на ту же live-флэшку, с которой буду грузиться.
Итак, план действия:
- создание бэкапа;
- форматирование, разметка диска, создание файловой системы;
- восстановление бэкапа;
- создание MBR;
- тестирование и устранение неполадок.
1. Создание бэкапа
Грузимся с live-флэшки, у меня это debian-live-7.8.0-amd64-standard.
Переключаемся на root:
sudo su
Монтируем раздел, который будем архивировать, у меня это sda1, чтобы случайно не наломать дров, монтируем только для чтения. Посмотреть все свои разделы можно при помощи команд ls /dev | grep sd или df -l
mount -o ro /dev/sda1 /mnt
Наша флэшка уже примонтирована, но в режиме только чтения, нужно перемонтировать для чтения-записи, чтобы писать туда бэкап.
mount -o remount,rw /dev/sdb1 /lib/live/mount/medium
Все готово для создания архива
tar -cvzpf /lib/live/mount/medium/backupYYYYMMDD.tgz --exclude=/mnt/var/spool/asterisk/monitor --exclude=/mnt/var/spool/asterisk/backup /mnt/
Здесь у нас параметры: c — создать архив, v — выводить информацию о процессе, z — использовать сжатие gzip, p — сохраняем данные о владельцах и правах доступа, f — пишем архив в файл, путь к файлу, —exclude — исключаем из архива каталог (я исключил каталоги с записями разговоров и каталог с бэкапами FreePBX), /mnt/ — каталог, который архивируем.
Ждем… у меня вся подготовка и создание архива заняли 10 минут. Будь флэшка быстрее, уложился бы в 7-8 минут.
umount /mnt
reboot
Складываем архив в надежное место за пределами офиса.
Восстановление бэкапа на другом железе
2. Размечаем диск, создаем файловую систему
Грузимся с live-флэшки, у меня все та же debian-live-7.8.0.
Переключаемся на root:
sudo su
Размечаем диск. Мне понравилась утилита с псевдографическим интерфейсом cfdisk. Там все просто и понятно.
cfdisk
Удаляем все имеющиеся разделы. Я создал два новых раздела, один на 490 Gb под / (sda1) и 10 Gb под swap (sda2) в конце диска, т.к. он практически не будет задействован. Проверим типы разделов. Который под систему должен иметь тип 83 Linux, второй — 82 Linux swap / Solaris. Помечаем системный раздел загрузочным (bootable), сохраняем изменения и выходим.
Cоздаем файловую систему на первом разделе.
mkfs.ext4 /dev/sda1
3. Распаковываем архив.
Монтируем отформатированный раздел
mount /dev/sda1 /mnt
Распаковываем архив прямо с флэшки
tar --same-owner -xvpf /lib/live/mount/medium/backupYYYYMMDD.tgz -C /mnt/
Параметр —same-owner — сохраняет владельцев у распаковываемых файлов, x — извлекаем из архива, v — выводить информацию о процессе, p — сохраняем права доступа, f — указываем файл, который распаковываем, C — распаковываем в категорию.
4. Создаем MBR на новом диске.
Чтобы корректно создать загрузочную запись, монтируем рабочие каталоги к нашему будущему root-каталогу, у меня это /mnt. Каталоги /dev и /proc сейчас используются live-системой, используем параметр bind, чтобы они были доступны сразу в двух местах:
mount --bind /dev /mnt/dev mount --bind /proc /mnt/proc
Переключаемся на новую систему используя chroot:
chroot /mnt
Делаем swap-раздел для новой системы:
mkswap /dev/sda2
Подключаем его же:
swapon /dev/sda2
Чтобы grub работал, нужно указать ему правильные UUID разделов в fstab, сейчас там прописаны разделы предыдущей системы:
nano /etc/fstab
Открываем второй терминал (Alt+F2) под root:
sudo su
blkid
И видим текущие UUID разделов.
Вручную переписываем их в fstab переключаясь между Alt+F1 и Alt+F2. Да, муторно, но попытки копировать занимали у меня больше времени, чем переписывание. Сохраняем fstab.
Устанавливаем grub2. У меня один физический диск, поэтому ставим его на sda:
grub-install /dev/sda
На чистый диск должно встать без ошибок. Обновляем информацию из fstab:
update-grub
Возвращаемся в Live-систему:
exit
Размонтируем все каталоги:
umount /mnt/dev umount /mnt/proc umount /mnt
Если вылазят процессы, которые используют эти каталоги, убиваем их используя fuser.
Все, поехали. Грузимся с жесткого диска:
reboot
Здесь статья должна была закончиться, но у меня возникли проблемы с подключением к интернету. Сервер видит сеть, видит компьютеры в ней, но в интернет не ходит… а это как бы важно для телефонии.
5. Тестирование и устранение неполадок.
ifconfig -a
Показывет интерфейсы eth1 и lo, гугление сказало, что gateway можно прописать только подключению eth0, остальные рассчитаны только на работу внутри сети.
Похоже, отсутствие eth0 вызвано способом переноса системы. Находим файл, который отвечает за нумерацию интерфейсов, смотрим туда:
nano /etc/udev/rules.d/70-persistent-net.rules
Действительно, там два активных интерфейса, определенных MAC’ами. Комментируем первый, второму прописываем eth0.
Перезапуск /etс/init.d/networking не помог, поэтому перезагружаемся:
reboot
Настройка бэкапов в Elastix 4
Регулярное проведение бэкапов (резервного копирования) IP – АТС дает страховку администратору от неожиданной потери данных. При аварии можно оперативно восстановить конфигурацию из бэкапа. О том, как настроить бэкап (backup) и выполнить процесс аварийного восстановления (restore) в Elastix 4 расскажем в сегодняшней статье.
Настройка бэкапа
Переходим к настройке бэкапов в IP – АТС Elastix. В административном интерфейсе переходим в раздел System → Backup/Restore. Перед нами открывается интерфейс настройки модуля:
Начнем с настройки FTP сервера – места, куда мы будем складывать наши копии. Нажимаем на кнопку FTP Backup. Как видим, необходимо указать параметры FTP сервера, который мы ранее подняли на базе vsftpd.
- Server FTP — указываем IP – адрес нашего FTP — сервера
- Port — порт оставляем стандартным, 21
- User — логин пользователя, которому разрешено FTP подключение
- Password — пароль указанного пользователя
- Path Server FTP — путь, по которому необходимо складывать бэкапы
Заполняем реквизиты по примеру, указанному на скриншоте ниже:
Нажимаем Save. Возвращаем на главную страницу и нажимаем + New Backup…. Открывается окно настройки самой архивной копии. Разберемся с возможными опциями:
- Endpoint — раздел по настройке бэкапа настроек конечных устройство (телефоны, шлюзы)
- Database — провести ли бэкап базы данных раздела EndPoint
- Configuration Files — производить ли бэкап файловой конфигурации указанного раздела
- Configuration Files — копировать ли файлы конфигурации
- Monitors (Heavy Content) — копировать ли аудио — записи разговоров. Elastix предупреждает, что это весьма большой объем данных.
- Voicemails — копировать ли голосовую почту (большой объем данных).
- Sounds — копировать ли записанные аудио — файлы (аннаунсменты, IVR)
- Music on Hold — добавлять ли в бэкап файлы музыки на ожидании
- DAHDI Configuration — если вы используете интерфейсные платы, укажите галочку.
- Database — копировать ли базу данных, с информацией о факсах (метаданные)
- PDF — копировать ли PDF файлы, в которых непосредственно хранятся факсы
- Database — метаданные
- Mailbox — непосредственно письма
После выбора, нажмите на кнопку Process и бэкап запустится. По окончанию, в основном интерфейсе модуля мы увидим новый бэкап:
Возвращаемся к FTP. Снова заходим в раздел FTP Backup. В разделе Local выбираем мышкой наш бэкап и перетаскиваем его в сторону FTP сервера. Нажимаем Save.
Готово. Для автоматизации бэкапа, выберите в основном интерфейсе настройки опцию Set Automatic Backup
Восстановление из резервной копии
Теперь рассмотрим вариант, когда настало худшее – все настройки вашей IP – АТС Elastix слетели и вы накатили чистый дистрибутив Elastix. Скопируйте файл бэкапа с FTP – сервера в директорию /var/www/backup/ и измените пользователя файла бэкапа на asterisk командой chown -R asterisk:asterisk /var/www/backup/ . После этого, файл появится в интерфейсе настройки System → Backup/Restore.
Заходим, и отмечаем галочкой бэкап и нажимаем Restore.Нам будет предложено выбрать параметры, которые необходимо восстановить из бэкапа. Нажимаем Select All options, а затем Process. Процесс восстановления может занимать несколько минут.
Elastix 2.3.0 экспорт записей разговоров
Есть ли в природе скрипт для очистки базы разговоров (звуковые файлы) и бэкапа их куда-нибудь во вне?
Т.е. есть желание хранить записи разговоров какой-то период времени, но винт маленький и быстро заканчивается, есть мысль выделить отдельный FTP сервер куда периодически скидывать все записи в более менее читаемом формате к примеру 201303291200007988999999798882828.wav чтобы потом по имени файла можно было как-то найти разговор.
спросил 2013-04-29 10:09:28 +0400
Comments
Скрипта такого нет. Пишите самостоятельно.
ага, LINUX WAY. т.е. сисадмин, который не умеет писать скрипты на баше не сисадмин 😉
Я про линукс и не говорил, как и про баш. Каждый волен писать на чем угодно. По постановке вопроса и так ясно , что эта затея не по силам автору.
Где что лежит в Asterisk и пути хранения данных на примере Elastix Where what lies in Asterisk and data storage paths such as Elastix
сайты дизайн кодинг верстка хостинг
системное администрирование
сопровождение продвижение
поддержка баннеры визитки
ремонт компьютеров
аутсорсинг- Блог техподдержки TECHBLOG
- Компаниям CORPORATE
- Частным лицам PERSONAL
- Сайты SITES
- Дизайн DESIGN