Виртуальные машины (ВМ) в oVirt требуют регулярного резервного копирования для обеспечения безопасности данных. Однако, в некоторых случаях соблюдение принципа Air Gap критично для защиты данных. Это означает, что хранилище для резервного копирования должно быть временно подключено только на время выполнения резервного копирования и затем отсоединено.
В этой статье мы рассмотрим, как создать снапшоты ВМ в oVirt, подключая и отключая NFS-хранилище через командную строку (CLI) с соблюдением принципа Air Gap.
Шаг 1: Подготовка
Перед началом процесса убедитесь, что у вас есть права на выполнение необходимых команд и доступ к серверу oVirt и NFS.
Подготовка NFS-хранилища
-
Убедитесь, что NFS сервер настроен и доступен: На NFS-сервере должен быть создан каталог для резервных копий и настроены права доступа.
-
Настройте экспорт каталога: На NFS-сервере добавьте строку в файл
/etc/exports
, чтобы экспортировать каталог для временного использования:plaintext/backup/ovirt-snapshots 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
Перезагрузите конфигурацию экспортов:
bashsudo exportfs -rav
Шаг 2: Создание снапшота через CLI
1. Создание точки монтирования и подключение NFS-хранилища
-
Создайте точку монтирования на хосте:
bashsudo mkdir -p /mnt/backup
-
Подключите NFS-хранилище к хосту:
bashsudo mount -t nfs 192.168.1.100:/backup/ovirt-snapshots /mnt/backup
Проверьте, что хранилище подключено корректно:
bashdf -h | grep /mnt/backup
-
Добавьте NFS-хранилище в oVirt:
Создайте новый домен хранения через CLI. Для этого используйте API oVirt или команду
ovirt-engine-sdk
. Ниже пример скрипта на Python для добавления хранилища:pythonimport ovirtsdk4 as sdk from ovirtsdk4.types import StorageDomain, Host, StorageType, NfsStorage # Подключение к oVirt Engine connection = sdk.Connection( url='https://your-ovirt-engine.example.com/ovirt-engine/api', username='admin@internal', password='yourpassword', insecure=True ) # Выбор первого доступного хоста hosts_service = connection.system_service().hosts_service() host = hosts_service.list()[0] # Создание NFS-хранилища storage_domains_service = connection.system_service().storage_domains_service() nfs_storage = NfsStorage( address='192.168.1.100', # IP-адрес NFS-сервера path='/backup/ovirt-snapshots' # Путь к каталогу ) storage_domain = StorageDomain( name='NFS_Snapshot_Storage', type=StorageType.DATA, host=Host(id=host.id), storage=nfs_storage ) storage_domains_service.add(storage_domain) connection.close()
2. Создание снапшота виртуальной машины
-
Получите ID виртуальной машины и ID хранилища:
bashVMI_ID=$(ovirt-shell -c -s "list vms" | grep -i "VM_Name" | awk '{print $1}') STORAGE_ID=$(ovirt-shell -c -s "list storagedomains" | grep -i "NFS_Snapshot_Storage" | awk '{print $1}')
-
Создайте снапшот:
bashovirt-shell -c -s "snapshot --vm-id $VMI_ID --storage-domain-id $STORAGE_ID"
3. Отключение NFS-хранилища и удаление точки монтирования
-
Удалите NFS-хранилище из oVirt:
pythonimport ovirtsdk4 as sdk # Подключение к oVirt Engine connection = sdk.Connection( url='https://your-ovirt-engine.example.com/ovirt-engine/api', username='admin@internal', password='yourpassword', insecure=True ) # Удаление хранилища storage_domains_service = connection.system_service().storage_domains_service() storage_domain = storage_domains_service.list(name='NFS_Snapshot_Storage')[0] storage_domains_service.storage_domain_service(storage_domain.id).remove() # Закрытие соединения connection.close()
-
Отмонтируйте и удалите точку монтирования на хосте:
bashsudo umount /mnt/backup sudo rmdir /mnt/backup
Скрипт для автоматизации и интеграция с cron
Для упрощения процесса можно создать скрипт, который будет выполнять все вышеуказанные шаги, и настроить его выполнение по расписанию через cron
.
Пример скрипта на Bash
Создайте файл backup.sh
с содержимым:
# Настройки
NFS_SERVER="192.168.1.100"
NFS_PATH="/backup/ovirt-snapshots"
MOUNT_POINT="/mnt/backup"
VM_NAME="VM_Name"
STORAGE_NAME="NFS_Snapshot_Storage"
OVIRT_API_URL="https://your-ovirt-engine.example.com/ovirt-engine/api"
OVIRT_USERNAME="admin@internal"
OVIRT_PASSWORD="yourpassword"
# Создание точки монтирования
sudo mkdir -p $MOUNT_POINT
# Подключение NFS-хранилища
sudo mount -t nfs $NFS_SERVER:$NFS_PATH $MOUNT_POINT
# Проверка подключения
if ! df -h | grep -q $MOUNT_POINT; then
echo "Ошибка: не удалось подключить NFS-хранилище."
exit 1
fi
# Добавление хранилища в oVirt
python3 - <<EOF
import ovirtsdk4 as sdk
from ovirtsdk4.types import StorageDomain, Host, StorageType, NfsStorage
# Подключение к oVirt Engine
connection = sdk.Connection(
url='$OVIRT_API_URL',
username='$OVIRT_USERNAME',
password='$OVIRT_PASSWORD',
insecure=True
)
# Выбор первого доступного хоста
hosts_service = connection.system_service().hosts_service()
host = hosts_service.list()[0]
# Создание NFS-хранилища
storage_domains_service = connection.system_service().storage_domains_service()
nfs_storage = NfsStorage(
address='$NFS_SERVER',
path='$NFS_PATH'
)
storage_domain = StorageDomain(
name='$STORAGE_NAME',
type=StorageType.DATA,
host=Host(id=host.id),
storage=nfs_storage
)
storage_domains_service.add(storage_domain)
connection.close()
EOF
# Получение ID виртуальной машины и ID хранилища
VMI_ID=$(ovirt-shell -c -s "list vms" | grep -i "$VM_NAME" | awk '{print $1}')
STORAGE_ID=$(ovirt-shell -c -s "list storagedomains" | grep -i "$STORAGE_NAME" | awk '{print $1}')
# Создание снапшота
ovirt-shell -c -s "snapshot --vm-id $VMI_ID --storage-domain-id $STORAGE_ID"
# Удаление хранилища из oVirt
python3 - <<EOF
import ovirtsdk4 as sdk
# Подключение к oVirt Engine
connection = sdk.Connection(
url='$OVIRT_API_URL',
username='$OVIRT_USERNAME',
password='$OVIRT_PASSWORD',
insecure=True
)
# Удаление хранилища
storage_domains_service = connection.system_service().storage_domains_service()
storage_domain = storage_domains_service.list(name='$STORAGE_NAME')[0]
storage_domains_service.storage_domain_service(storage_domain.id).remove()
# Закрытие соединения
connection.close()
EOF
# Отмонтирование и удаление точки монтирования
sudo umount $MOUNT_POINT
sudo rmdir $MOUNT_POINT
Настройка cron
Добавьте задание в cron
, чтобы автоматически выполнять скрипт по расписанию:
crontab -e
Добавьте строку для выполнения скрипта, например, каждый день в 2:00:
0 2 * * * /path/to/backup.sh > /var/log/backup.log 2>&1
Преимущества Vinchin Backup and Recovery для защиты oVirt
Виртуализация с использованием oVirt предоставляет организациям мощные инструменты для управления и масштабирования своих ИТ-инфраструктур. Однако, как и в любой другой ИТ-системе, защита данных является критически важной задачей.
Здесь на помощь приходит Vinchin Backup and Recovery — специализированное решение для резервного копирования и восстановления, которое обеспечивает надежную защиту виртуальных сред, включая oVirt.
Основные преимущества Vinchin Backup and Recovery для oVirt:
-
Полная интеграция с oVirt: Vinchin Backup and Recovery полностью интегрирован с oVirt, что позволяет легко настроить резервное копирование виртуальных машин напрямую из интерфейса oVirt. Эта интеграция упрощает управление резервными копиями и обеспечивает более высокий уровень автоматизации.
-
Инкрементное и дедуплицированное резервное копирование: Vinchin использует технологию инкрементного резервного копирования, что позволяет существенно сократить время на создание бэкапов и объем хранимых данных. Дедупликация на уровне блоков минимизирует использование дискового пространства, сохраняя только уникальные данные.
-
Быстрое восстановление и поддержка мгновенного восстановления: Vinchin Backup and Recovery предлагает возможность мгновенного восстановления виртуальных машин, что позволяет минимизировать простой в случае сбоя. Это особенно важно для критически важных приложений и сервисов.
-
Гибкость в настройке резервных копий: Решение поддерживает широкий спектр настроек резервного копирования, включая полное, инкрементное и дифференциальное копирование. Вы также можете настраивать политики хранения и планирования резервного копирования, что позволяет оптимизировать процесс защиты данных под нужды вашей организации.
-
Защита от программ-вымогателей (Ransomware): Vinchin включает защиту от программ-вымогателей, что позволяет защитить резервные копии от несанкционированного изменения и удаления. Это важная функция, учитывая растущие угрозы в сфере кибербезопасности.
-
Масштабируемость и высокая доступность: Vinchin Backup and Recovery масштабируется вместе с вашей виртуальной средой, обеспечивая защиту данных независимо от размера инфраструктуры. Поддержка высокодоступных кластеров (HA) обеспечивает постоянную доступность резервных копий даже в случае выхода из строя одного из узлов.
Заключение
Создание снапшотов виртуальных машин oVirt и их резервное копирование на удалённое хранилище NFS с соблюдением принципа Air Gap может быть сложным, но эффективным методом обеспечения безопасности данных.
Используя командную строку для подключения и отключения NFS-хранилища, а также автоматизируя процесс с помощью скриптов и cron, вы сможете обеспечить надёжное резервное копирование и поддерживать высокий уровень безопасности данных.
Реклама Google |
|
Внимание! Данная статья не является официальной документацией.Использование информации необходимо выполнять с осторожностью, используя для этого тестовую среду.
Если у вас есть вопросы о построении современных систем резервного копирования, репликации, синхронизации данных и защиты от программ вымогателей обратитесь в нашу компанию для получения консультации о современных технологиях резервного копирования и восстановления данных. Наша компания имеет более чем 20-летний опыт в этой области. |
Десять лучших практик резервного копирования в Казахстане
- Защита гипервизора oVirt — глубокое погружение
- Перенос виртуальной машины из oVirt в Proxmox
- Как перенести виртуальную машину из Proxmox в oVirt
- Защита контейнеров Kubernetes — глубокое погружение
- Как защитить гипервизор Proxmox от взлома - Глубокое погружение
- Использование Fail2Ban для защиты oVirt - Глубокое погружение
- Организация резервного копирования гипервизора oVirt — Глубокое погружение
- Перенос виртуальной машины между гипервизорами Proxmox
- Конфигурация гипервизора Proxmox для оптимальной работы виртуальных машин
- Защита root после взлома SSH на Proxmox - глубокое погружение