Назад | Перейти на главную страницу

DRBD & KVM репликация возможна?

У меня есть два KVM-сервера с несколькими виртуальными машинами.

Сервер (A) KVM с образами qcow2

Сервер (B) KVM монтирует NFS для разделения (с образами qcow2, присутствующими на сервере A).

Мой вопрос прост: как лучше всего создавать копии виртуальных дисков на сервере B (очевидно, при запущенных виртуальных машинах). DRBD - это одно решение ??

Если вы просто хотите реплицировать образы qcow2 с сервера A на сервере B, но к ним не нужно обращаться одновременно на A и B, тогда вы можете использовать DRBD с любой файловой системой на нем (например, ext4) , работает как первичный на A и вторичный на B. Когда A выйдет из строя, вы сможете переключить DRBD на B на Primary и использовать там изображения.

Если вы хотите, чтобы эти изображения были доступны и использовались на A и B одновременно, это будет сложнее. Кластерная файловая система может помочь, но я не думаю, что производительность будет правильной.

Если вы просто хотите сделать одноразовую копию изображений, просто остановите виртуальные машины на A, скопируйте изображения с помощью scp / rsync / over-NFS / something. Если виртуальные машины должны быть запущены на A, то для согласованного образа вам потребуется сделать какой-то снимок. Я не знаю KVM и QCOW2, но, возможно, они предоставляют некоторую функциональность снимков. Если нет, то снимки LVM могут быть, если вы храните изображения на томе LVM.

Взгляни на https://alteeve.ca/w/2-Node_Red_Hat_KVM_Cluster_Tutorial он проведет вас по шагам.

Для обеспечения высокой доступности с виртуальными машинами вы можете попробовать Ganeti и DRBD в качестве ресурса, но при настройке ganeti потребуется немного дополнительной работы, но боль того стоит, поскольку это сделает управление вашей виртуальной машиной по-настоящему гладким.

Еще один вариант, который я мог придумать, - это использовать глянцевые объемы. Его будет очень легко настроить и установить, и если у вас хорошее оборудование, производительность должна быть хорошей.

На данный момент я использую простой стиль DRBD, как объяснил Яцек, я также изучаю другие способы.

Я работал над той же проблемой. У меня это работает двумя разными способами.

Настроить

Я решил построить свои гостевые системы kvm поверх LV, используя необработанный формат. Я не знаю, что это лучше, чем иметь их в файлах изображений на LV, но я собираюсь с этим. Было бы намного проще использовать drbd для синхронизации физического раздела LVM, но я хочу запустить несколько LV, и один из них будет работать на hostA (требуется drbd основная роль), а другой на hostB (также требует drbd основная роль). Так что я застрял, если не перейду к Gluster, но я не хочу принимать еще одну технологию на данном этапе. Мой стек хранилища уже:

KVM guest
drbd (drbd1)
lvm2 logical volume (guestlv)
lvm2 volume group (vg)
lvm2 physical volume (crypt)
dm-crypt (crypt)
gpt partitions (md_d0p1=root, md_d0p2=swap, md_d0p3=crypt)
mirror-RAID (md_d0)
gpt partition (single)
hard drive (2)

Самая большая проблема, которую мне нужно решить, это то, что virt-manager не узнает и не позволит вам работать с drbd объемы (virt-install и vmbuilder у меня не работают). Итак, вот что я сделал:

hostA и hastB работают под управлением Ubunut 14.04LTS, установленного с пакетами OpenSSH Server и Virtualization Host, с lvm2 и drbd8-utils также установлен. Каждый имеет 4 NICS, соединенных попарно. bond0 соединяется с br0 и используется гостями, bond1 не соединен мостом и использует подсеть, зарезервированную для drbd.

KVM + DRBD, метод 1

Часть A - Создание гостя KVM

  1. Создать LV на hostA.
  2. Копировать ubuntu-14.04.1-server-amd64.iso к /var/lib/libvirt/images
  3. На клиенте под управлением Ubuntu Desktop запустите virt-manager.
  4. Присоединиться hostA.
  5. Открой Details и используйте вкладку Хранилище, чтобы добавить группу томов LVM.
  6. Настройте новую машину, используя установочный ISO, LV для хранения, br0 для сети.
  7. Перезагрузите и т. Д., Убедитесь, что ваш LV работает нормально.

Часть B - Настройка репликации

  1. Выключите гостевую систему KVM.
  2. Использовать lvresize увеличить размер LV на 1 lun. lvresize -l +1 vg/guestlv
  3. Инициализировать drbd метаданные. drbdadm create-md /dev/vg/guestlv
  4. Создать drbd файл ресурсов. file:/etc/drbd.d/guest.res resource guest { device /dev/drbd1; meta-disk internal; startup { become-primary-on hostA; wfc-timeout 30; outdated-wfc-timeout 20; degr-wfc-timeout 30; } net { cram-hmac-alg sha1; shared-secret sync_disk; } syncer { rate 100M; verify-alg sha1; } on hostA { address 192.168.2.1:7789; disk /dev/vg/guestlv; } on hostB { address 192.168.2.2:7789; disk /dev/vg/guestlv; } }
  5. На hostB
    1. создайте LV того же размера (новый размер +1!), используя группы томов и имена уровней, как в файле ресурсов.
    2. Бегать drbdadm create-md /dev/vg/guestlv
    3. Бегать drbdadm connect --discard-my-data guest
    4. Бегать drbdadm up guest
  6. На hostA
    1. Бегать drbdadm up guest
    2. Бегать drbdadm primary guest

Часть C - Переключите устройство drbd в конфигурацию KVM

  1. На hostA, бегать virsh edit guestlv
  2. Найдите линию <source dev='/dev/vg/guestlv'/> и измените его на <source dev='/dev/drbd1'/>
  3. Сохраните и выйдите, запустите виртуальную машину и убедитесь, что она работает. Закрой это.
  4. Подождите drbd синхронизировать, чтобы закончить.
  5. Бегать drbdadm secondary guest.
  6. На hostB, бегать drbdadm primary guest.
  7. На своей рабочей станции используйте virt-manager для создания нового гостя с нежелательным объемом хранилища. Выключите его, как только начнется установка.
  8. На hostB, используйте virsh edit guestlv и установите хранилище на /dev/drbd1. Запустите виртуальную машину, убедитесь, что она работает и т. Д.

KVM + DRBD, метод 2 Очень похоже на вышеприведенное, но

  1. Настроить /dev/drbd1, синхронизируйте.
  2. Создайте гостевую машину KVM, используя нежелательный том для хранилища, прервите установку.
  3. Использовать virsh-edit поменять местами /dev/drbd1 место хранения.
  4. Запустите его и запустите установку. Иногда это работало, иногда я получал ошибку остановки показа при установке grub на /dev/vda.
  5. Если у вас все получилось, выключите виртуальную машину, замените drbd первичный и вторичный, настройте другой хост, тест и т. д.