Пример бэкапа windows сервера с помощью rsync
Еще один пример из моей практики. Допустим, у нас есть windows сервер с некоторой информацией, которую мы хотим так же бэкапить. Никаких проблем, это делается достаточно просто.
Создаем на windows сервере сетевую шару с информацией. Создаем пользователя и добавляем его в доступ к этой папке. Этого пользователя мы будем использовать для подключения виндовой шары к linux серверу.
Монтируем шару с информацией, которую будем бэкапить:
# mount -t cifs //192.168.0.16/docs /mnt/docs -o user=backup,password=12345,iocharset=utf-8,codepage=cp866
192.168.0.16 — адрес виндовой шары
backup и 12345 — пользователь и пароль виндовой машины с доступом к шаре docs.
Все, теперь папку /mnt/docs можно использовать в качестве приемника в нашем скрипте бэкапа с rsync. Если папка примонтирована непосредственно к серверу с бэкапами, то нужно на нем самом настроить конфиг rsyncd на примере серверов источников, запустить на нем rsyncd и в скрипте в качестве ip адреса сервера указывать 127.0.0.1.
Я в таких случаях создаю несколько скриптов: на монтирование шары, бэкап и размонтирование, объединяю их в один и запускаю последовательно. В итоге получается, что подключаем диск, делаем бэкап и отключаем его.
Так же есть возможность установить на Windows Server rsync с помощью cygwin. Подобный функционал собран в готовом приложении — cwRsync server. Его настройка ничем принципиально не отличается от настройки linux версии. Нужно только внимательно следить за путями к директориям, примеры есть в конфигах.
Онлайн курс Infrastructure as a code
Если у вас есть желание научиться автоматизировать свою работу, избавить себя и команду от рутины, рекомендую пройти онлайн курс Infrastructure as a code. в OTUS. Обучение длится 4 месяца.
Что даст вам этот курс:
- Познакомитесь с Terraform.
- Изучите систему управления конфигурацией Ansible.
- Познакомитесь с другими системами управления конфигурацией — Chef, Puppet, SaltStack.
- Узнаете, чем отличается изменяемая инфраструктура от неизменяемой, а также научитесь выбирать и управлять ей.
- В заключительном модуле изучите инструменты CI/CD: это GitLab и Jenkins
Смотрите подробнее программу по .
Установка Debian 10 на raid
Рассмотрим вариант установки debian на софтовый рейд mdadm. Эта актуальная ситуация, когда вы разворачиваете систему на железе, а не виртуальной машине. К примеру, такая конфигурация будет полезна для установки proxmox. В этой статье я уже рассматривал установку debian на raid1. Но там более старая версия Debian. Так что рассмотрю еще раз эту тему уже на примере Debian 10.
Итак, начинаем установку системы по приведенной ранее инструкции. Доходим до этапа разбивки диска и выбираем режим Manual.
Выбираем любой из дисков и перемещаемся в раздел конфигурации дисков. Нам нужно, чтобы получилась следующая картина:
- Массив raid1, объединяющий оба диска.
- /boot раздел прямо на mdadm рейде.
- Поверх массива LVM том на всем остальном пространстве, кроме /boot.
- Корневой раздел по всему lvm.
В конечном итоге, в конфигураторе это выглядит так:
Последовательность действий для этой конфигурации следующая:
- На каждом диске создаете по 2 раздела — один под /boot 500 Мб и второй все остальное пространство.
- Объединяете эти разделы в 2 raid1 mdadm. Один массив под /boot, второй под остальную систему.
- На массиве под /boot сразу же делаете раздел /boot и файловую систему ext2.
- Создаете volume group на весь второй массив, потом в этой группе создаете logical volume под корневой раздел.
- В logical volume создаете корневой раздел / и файловую систему ext4.
В итоге у вас должно получиться то же, что и у меня на картинке. Дальше ставите debian 10 как обычно. После установки на raid нужно выполнить несколько важных действий.
- Зайти в систему и создать swap.
- Установить загрузчик на оба диска. Во время установки он был установлен только на один диск.
- Протестировать отказ одного из дисков.
# dpkg-reconfigure grub-pc
Выскочат пару запросов на указание дополнительных параметров. Можно ничего не указывать, оставлять все значения по-умолчанию. А в конце выбрать оба жестких диска для установки загрузчика.
Смотрим теперь, что с дисками.
Картина такая, как и было задумано. Выключим сервер, отсоединим один диск и включим снова. При запуске, нормально отработал grub, дальше посыпались ошибки в консоль.
Тем не менее, сервер через некоторое время загрузился. Смотрим, в каком состоянии диски.
В целом, все в порядке, система полностью работает. Просто не хватает одного диска. Теперь снова выключим сервер и воткнем в него чистый диск такого же объема. То есть имитируем замену сломанного диска на новый. Запускаем сервер и проверяем список дисков в системе.
# fdisk -l | grep /dev Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors /dev/sda1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sda2 999424 20969471 19970048 9.5G fd Linux raid autodetect Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors Disk /dev/md1: 9.5 GiB, 10215227392 bytes, 19951616 sectors Disk /dev/md0: 475 MiB, 498073600 bytes, 972800 sectors Disk /dev/mapper/vg00-root: 9.5 GiB, 10213130240 bytes, 19947520 sectors
Старый диск sda c двумя разделами и новый диск sdb без разделов. Нам нужно на новый диск скопировать структуру диска sda. Делаем это следующей командой.
# sfdisk -d /dev/sda | sfdisk /dev/sdb
Проверяем результат:
# fdisk -l | grep /dev Disk /dev/sda: 10 GiB, 10737418240 bytes, 20971520 sectors /dev/sda1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sda2 999424 20969471 19970048 9.5G fd Linux raid autodetect Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors /dev/sdb1 * 2048 999423 997376 487M fd Linux raid autodetect /dev/sdb2 999424 20969471 19970048 9.5G fd Linux raid autodetect Disk /dev/md1: 9.5 GiB, 10215227392 bytes, 19951616 sectors Disk /dev/md0: 475 MiB, 498073600 bytes, 972800 sectors Disk /dev/mapper/vg00-root: 9.5 GiB, 10213130240 bytes, 19947520 sectors
То, что надо. Теперь добавляем новый диск в деградированные массивы mdadm.
# mdadm --add /dev/md0 /dev/sdb1
Дожидаемся окончания ребилда массива под boot. Это будет быстро. И возвращаем диск в корневой раздел.
# mdadm --add /dev/md1 /dev/sdb2
Не забываем добавить загрузчик на новый диск.
# dpkg-reconfigure grub-pc
После окончания ребилда можно перезагрузить сервер, чтобы убедиться, что все порядке. Я рекомендую всегда делать подобные проверки при настройке серверов
Не важно, какой у вас рейд контроллер. Надо имитировать поломку диска и выполнить его замену
При необходимости, процесс восстановления можно записать, чтобы при поломке диска точно знать, как действовать.
На этом иснтрукция по установке Debian 10 на софтовый рейд массив закончена. По-моему, получился очень функциональный вариант. Дальше на этот сервер можно установить proxmox и получить устойчивый к отказу дисков гпервизор. Причем по надежности он будет не хуже, чем железный рейд, а возможно и лучше.
Установка
Есть два варианта установки Proxmox VE — использовать готовый образ или установка на Debian. Мы рассмотрим оба.
Установка готового образа ISO
1. Переходим на страницу загрузки Proxmox официального сайта. Загружаем дистрибутив, например, Proxmox VE 6.1:
2. Если установка выполняется на виртуальную машину, монтируем образ. Если нет — создаем установочную флешку, например, с помощью WinSetupFromUsb или загрузочный диск с помощью InfraRecorder.
3. Загружаем сервер с установочного ISO — мы увидим окно приветствия Proxmox — выбираем пункт меню Install Proxmox VE:
4. Принимаем лицензионное соглашения, кликнув по I agree.
5. Выбираем диск, на который будет установлена система:
* при необходимости, кликаем по Options и задаем настройки файловой системы и размера раздела.
6. Пишем страну, временную зону, язык раскладки клавиатуры по умолчанию:
7. Вводим дважды пароль, который будет использоваться для пользователя root:
8. Прописываем сетевые настройки:
* где:
- Management Interface: сетевой интерфейс для управления сервером виртуальных машин.
- Hostname (FQDN): имя хоста для сервера.
- IP Address: IP-адрес нашего сервера.
- Netmask: маска подсети для сервера.
- Gateway: шлюз по умолчанию.
- DNS Server: сервер DNS.
9. В окне «Summary» проверяем введенные данные и кликаем по Install. Начнется процесс установки, который займет не более 10 минут.
10. После установки мы должны увидеть «Installation Successful» — перезагружаем сервер, кликнув по кнопке Reboot.
После переходим к проверке установки.
Установка на Debian
Если мы решили установить Proxmox на уже установленный Debian, выполняем следующую инструкцию.
При установке среды виртуализации меняется ядро Linux. Это может привести к потери работоспособности уже установленных сервисов. Таким образом, установку Proxmox следует выполнять на чистый сервер, а не тот, который уже используется для каких-либо задач.
1. Имя сервера должно разрешаться по его IP-адресу. Для этого либо добавляем А-запись в DNS, либо настраиваем на сервере файл hosts:
nano /etc/hosts
… и добавляем:
192.168.1.55 proxmox.dmosk.local proxmox
* где 192.168.1.55 — IP-адрес нашего сервера; proxmox — имя сервера; dmosk.local — наш домен, если используется.
2. Добавляем репозитории, которые будем устанавливать для установки Proxmox PE и дополнительных компонентов:
nano /etc/apt/sources.list
deb http://mirror.yandex.ru/debian/ buster main non-free contrib
deb-src http://mirror.yandex.ru/debian/ buster main non-free contrib
deb http://download.proxmox.com/debian/pve buster pve-no-subscription
Чтобы мы могли работать с репозиторием proxmox добавляем в систему цифровую подпись:
wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
Обновляем список пакетов:
apt-get update
3. Устанавливаем Proxmox PE и компоненты:
apt-get install proxmox-ve open-iscsi
* где proxmox-ve — собственно, сам гипервизор; open-iscsi — iSCSI-клиент для подключения iSCSI-target-ов.
4. Перезагружаем сервер:
systemctl reboot
Проверка установки
В браузере открываем панель управления системой виртуализации по адресу https://<IP-адрес сервера>:8006. В открывшемся окне выбираем язык, вводим логин и пароль от пользователя root:
Должно открыться окно управления.
Какой диск выбрать в kvm — lvm, raw (img) или qcow2
В kvm есть несколько типов дисков, которые вы можете использовать в своей работе. Они имеют принципиальные отличия как по своей работе, так и по способам бэкапа. Выбирать тот или иной тип нужно в зависимости от ваших задач. Рассмотрим эти типы подробнее.
LVM. Тут все понятно. Использование lvm томов в виде дисков виртуальных машин. Такой диск будет блочным устройством и должен работать быстрее всех остальных типов, так как нет лишней прослойки в виде файловой системы.
Плюсы:
- Снэпшоты средствами самого lvm, с них легко снять бэкап без остановки виртуальной машины.
- Максимальное быстродействие.
- Легко изменить размер диска.
Минусы:
- Более сложное управление по сравнению с дисками в виде отдельных файлов.
- Менее гибкое управление пространством диска. Если весь диск разбить на lvm разделы для виртуалок, то места на нем не останется, даже если вируталки будут пустые.
- Более сложный перенос на другой сервер.
RAW. Это обычный формат сырых данных. Среди дисков в виде файлов это будет самый простой и быстрый вариант. Все данные пишутся как есть без дополнительных обработок и служебной информации. Формат является универсальным для большинства популярных гипервизоров.
Плюсы:
- Максимальная простота и производительность среди образов в виде файла.
- Универсальный формат с поддержкой в большинстве гипервизоров.
- Легкость переноса виртуальной машины на другой сервер. Достаточно просто скопировать файл.
Минусы:
- Не поддерживает снепшоты ни в каком виде.
- Занимает сразу все выделенное пространство на диске, даже если внутри виртуальной машины место будет свободно. Из-за отсутствия фрагментации в некоторых случаях это может оказаться плюсом.
QCOW2. Родной формат для гипервизора QEMU. Расшифровывается как QEMU Copy-on-write. Этот формат позволяет создавать динамические диски для виртуальных машин, а так же поддерживает снепшоты. Теоретически, скорость работы должна хоть и не сильно, но уступать RAW. Как обстоит дело на практике, я не знаю, не замерял и подробно эту информацию не проверял.
Плюсы:
- Поддержка снепшотов и динамических дисков. Как следствие — более удобное управление дисковым пространством.
- Легкость переноса виртуальной машины на другой сервер. Достаточно просто скопировать файл.
Минусы:
Более низкая производительность, по сравнению с другими типами образов.
У каждого типа есть свои преимущества и недостатки. Lvm проще всего бэкапить, но им сложнее всего управлять. Для того, кто хорошо знаком с lvm это не проблема, если сталкиваешься первый раз, то возникает много вопросов. У raw нет снепшотов, лично для меня это большой минус, я этот формат вообще не рассматриваю. Если нет максимальной нагрузки на дисковую подсистему, то QCOW2 мне кажется наиболее приемлемым вариантом. Собственно, ниже и пойдет рассказ, как совместить удобство управления QCOW2 и простоту бэкапов и снэпшотов lvm. Я покажу, как сделать живой бэкап виртуальной машины kvm в формате qcow2 без остановки виртуальной машины.