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

Выделите 'PassengerEnabled'.

4
задан 15 November 2012 в 19:08
4 ответа

If you just want to replicate the server A qcow2 images on the server B, but they don't have to be accessed at the same time on both A and B, then you may use DRBD with any file system on it (like ext4), running as Primary on A and Secondary on B. When A fails you will be able to switch DRBD on B to Primary and use the images there.

In case you want those images available and used on A and B at the same time – then this will be more tricky. A clustered file system may help, but I don't think performance will be right.

If you just want to make a one time copy of the images, then just stop the VMs on A, copy the images with scp/rsync/over-NFS/whatever. If the VMs must be running on A, then, for a consistent image, you will need to make some kind of snapshot. I don't know KVM and QCOW2, but maybe they provide some snapshot functionality. If not, then LVM snapshots may have if you store the images on an LVM volume.

3
ответ дан 3 December 2019 в 03:32

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

1
ответ дан 3 December 2019 в 03:32

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

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

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

0
ответ дан 3 December 2019 в 03:32

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

Setup

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

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 и с помощью вкладки Storage добавьте группу LVM томов.
  6. Настройте новую машину, используя установочный ISO, LV для хранения, br0 для сети.
  7. Перезагрузите и т.д.., Убедитесь, что Ваш LV работает нормально.

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

  1. Выключите гостевую систему KVM.
  2. Используйте lvresize для увеличения размера LV на 1 лн. lvresize -l +1 vg/guestlv
  3. Инициализируйте метаданные drbd. drbdadm create-md /dev/vg/guestlv
  4. Создайте файл ресурса drbd. файл:/etc/drbd.d/guest.res гость ресурса { устройство /dev/drbd1; внутренний мета-диск; запуск { стать хозяином в праймериз; 30-й тайм-аут; устаревший тайм-аут 20; degr-wfctimeout 30; } сеть { крэм-мак-альг-ша1; shared-secret sync_disk; } синхронизация ставка 100М; Верифи-альг-ша1; } на хостеА адрес 192.168.2.1:7789; диск /dev/vg/guestlv; } на хостеБ адрес 192.168.2.2:7789; диск /dev/vg/guestlv; } }
  5. На hostB
    1. создайте LV идентичного размера (новый размер +1!), используя группу томов и имена lv, как в файле ресурсов.
    2. Запустите drbdadm create-md /dev/vg/guestlv
    3. Запустите drbdadm connect --discard-my-. data guest
    4. Run drbdadm up guest
  6. On hostA
    1. Run drbdadm up guest
    2. Run drbdadm primary guest

Part C - Переключите drbd устройство в KVM config

  1. On hostA, запустите virsh edit guestlv
  2. Найдите строку и измените ее на
  3. Сохраните и выйдите, запустите свою виртуальную машину, убедитесь, что она работает. Выключите его.
  4. Подождите синхронизации drbd для завершения.
  5. Запустите вторичный гость drbdadm.
  6. На hostB запустите первичный гость drbdadm.
  7. На своей рабочей станции используйте virt-manager для создания нового гостя с некоторой мусорной громкостью для хранилища. Выключите его, как только начнётся установка.
  8. На hostB используйте virt-редактор guestlv и установите хранилище на /dev/drbd1. Запустите ВМ, убедитесь, что она работает и т.д.

KVM + DRBD Метод 2. Очень похоже на то, что было сказано выше, но

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

Теги

Похожие вопросы