Рейтинг:0

QEMU-KVM, drbd и corosync — виртуальные машины не работают после перезагрузки

флаг br

В Debian 9.6 у меня есть виртуализация QEMU-KVM. После проблем с электричеством эта машина просто выключилась. После повторного включения я не могу запустить ни одну виртуальную машину из-за этой ошибки:

ошибка: внутренняя ошибка: процесс завершился при подключении к монитору: 2022-02-03T12:01:58.403986Z qemu-system-x86_64: -drive file=/dev/drbd6,format=raw,if=none,id=drive-virtio -disk0,cache=none: Не удалось открыть '/dev/drbd6': файловая система только для чтения

Это происходит на каждой из 4 виртуальных машин. Fdisk видит только это:

Диск /dev/sda: 931,5 ГиБ, 1000204886016 байт, 1953525168 секторов
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x00037a37

Размер начальных и конечных секторов загрузки устройства Идентификатор типа
/dev/sda1 * 2048 19531775 19529728 9.3G fd Автоопределение рейда Linux
/dev/sda2 19531776 35155967 15624192 7.5G fd Автоопределение рейда Linux
/dev/sda3 35155968 1939451903 1904295936 908G fd Автоопределение рейда Linux


Диск /dev/sdb: 931,5 ГиБ, 1000204886016 байт, 1953525168 секторов
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x000e1911

Размер начальных и конечных секторов загрузки устройства Идентификатор типа
/dev/sdb1 * 2048 19531775 19529728 9.3G fd Автоопределение рейда Linux
/dev/sdb2 19531776 35155967 15624192 7.5G fd Автоопределение рейда Linux
/dev/sdb3 35155968 1939451903 1904295936 908G fd Автоопределение рейда Linux


Диск /dev/md0: 9,3 ГиБ, 9998098432 байт, 19527536 секторов
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/md1: 7,5 ГиБ, 7998525440 байт, 15622120 секторов
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/md2: 908 ГиБ, 974998331392 байт, 1904293616 секторов
Единицы: секторы 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода/вывода (минимальный/оптимальный): 512 байт / 512 байт

Я понял, что это проблема drbd (или corosync), о которой я не знал, что она там существует, и вот как это делается. Ниже некоторая информация, которая одинакова на бот-машинах:

    # статус службы drbd
• drbd.service — LSB: управление ресурсами DRBD.
   Загружено: загружено (/etc/init.d/drbd; создано; предустановка поставщика: включена)
   Активен: активен (закрыт) со вт 08.02.2022 11:34:48 CET; 6 минут назад
     Документы: man:systemd-sysv-generator(8)
  Процесс: 12711 ExecStop=/etc/init.d/drbd stop (code=exited, status=0/SUCCESS)
  Процесс: 12793 ExecStart=/etc/init.d/drbd start (code=exited, status=0/SUCCESS)

08 февраля 11:34:47 brain systemd[1]: Запуск LSB: Управление ресурсами DRBD....
08 февраля, 11:34:47 brain drbd[12793]: запуск ресурсов DRBD:[
08 февраля 11:34:47 мозг drbd[12793]: создать разрешение: r0 r1 r10 r2 r3 r4 r5 r6 r7 r8 r9
08 февраля 11:34:47 мозг drbd[12793]: подготовить диск: r0 r1 r10 r2 r3 r4 r5 r6 r7 r8 r9
08 февраля 11:34:47 мозг drbd[12793]: настроить диск: r0: не удалось (применить-al: 20) r1: не удалось (применить-al: 20) r10: не удалось (применить-al: 20) r2: не удалось ( применить-al:20) r3: не удалось (применить-al: 20) r4: не удалось (применить-al: 20) r5: не удалось (применить
08 февраля 11:34:47 мозг drbd[12793]: настроить сеть: r0 r1 r10 r2 r3 r4 r5 r6 r7 r8 r9
08 фев 11:34:47 мозг drbd[12793]: ]
08 февраля 11:34:48 brain drbd[12793]: ПРЕДУПРЕЖДЕНИЕ: stdin/stdout не является TTY; используя /dev/консоль.
08 февраля 11:34:48 brain systemd[1]: запущен LSB: управление ресурсами DRBD..



# кошка /proc/drbd
версия: 8.4.7 (апи: 1/прото: 86-101)
исходная версия: F7D2F0C9036CD0E796D5958
 0: cs:Подключен ro:Вторичный/Вторичный ds:Бездисковый/Бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 1: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 2: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 3: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 4: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 5: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 6: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 7: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 8: cs:Connected ro:Secondary/Secondary ds:бездисковый/бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
 9: cs:Connected ro:Вторичный/Вторичный ds:Бездисковый/Бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0
10: cs:Connected ro:Вторичный/Вторичный ds:Бездисковый/Бездисковый C r-----
    ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

Когда я хочу сделать один из дисков основным на VE1, это дает мне ошибку:

# drbdadm первичный r0
0: изменение состояния не удалось: (-2) требуется доступ к данным UpToDate.
Команда 'drbdsetup-84 primary 0' завершается с кодом выхода 17.

На VE2 (вторичном) работает drbdadm вторичное r0.

# drbdadm до r0
open(/dev/vg0/lv-sheep) не удалось: нет такого файла или каталога
Команда 'drbdmeta 0 v08 /dev/vg0/lv-sheep internal apply-al' завершена с кодом выхода 20

И нигде не могу найти /dev/vg0. Все находится в /dev/drbd/vg0/by-disk/lv-sheep.

Я не знаю, существовали ли эти виртуальные машины, должен ли я использовать такую ​​последовательность команд:

# drbdadm create-md r0
# drbdadm до r0
# первичный drbdadm r0 --force
# mkfs.ext4 /dev/drbd0

У кого-нибудь есть мысли?

РЕДАКТИРОВАТЬ: Дополнительные данные

    # vgdisplay
  --- Группа томов ---
  Имя ВГ vg0
  Идентификатор системы
  Формат lvm2
  Области метаданных 1
  Последовательность метаданных № 26
  Доступ к VG для чтения/записи
  Изменяемый размер статуса VG
  МАКС. УРОВ. 0
  Кур LV 11
  Открыть LV 0
  Макс. PV 0
  Кур ПВ 1
  Акт 1 часть
  Размер VG 908,04 ГиБ
  Размер PE 4,00 МБ
  Всего ЧП 232457
  Alloc PE / Размер 177664 / 694,00 ГиБ
  Бесплатный PE / Размер 54793 / 214,04 ГиБ
  VG UUID cHjzTE-lZxc-J6Qs-35jD-3kRn-csJx-g5MgNy

# кошка /etc/drbd.conf
# Вы можете найти пример в /usr/share/doc/drbd.../drbd.conf.example

включить "drbd.d/global_common.conf";
включить "drbd.d/*.res";


# кот /etc/drbd.d/r1.res
ресурс r1 {
        устройство /dev/drbd1;
        диск /dev/vg0/lv-viewcenter;
        метадиск внутренний;

        запускать {
# стать первичным на обоих;
        }

        сеть {
                разрешить два основных цвета;
                после-сб-0при сбросе-ноль-изменений;
                после-сб-1при сбросе-вторичный;
                после-сб-2при разъединении;
                крам-хмак-алг ша1;
                общий секрет "T/L0zE/i9eiPI";
        }

        синхронизатор {
                скорость 200М;
        }

        на мозг {
                адрес 10.0.0.1:7789;
        }

        на мизинце {
                адрес 10.0.0.2:7789;
        }
}
Matt Kereczman avatar
флаг nr
Не могли бы вы добавить свои конфигурации DRBD к своему вопросу? Обычно они находятся либо в `/etc/drbd.d/*.res`, либо в `/etc/drbd.conf`. Кроме того, что выводит `vgdisplay`?
флаг br
@MattKereczman добавил информацию, которую вы просили.
Рейтинг:1
флаг br

Все работает прямо сейчас благодаря комментарию Мэтта Керецмана. После команды "vgdisplay" я увидел группу томов vg0. Следующей командой, которую я использовал, была «lvdisplay», которая распечатала все мои виртуальные машины.

Следующими шагами было сделать последовательности команд:

# vgscan --mknodes
Дескриптор файла 8 (канал: [270576]) просочился при вызове vgscan. Родительский PID 15357: Баш
Чтение групп томов из кеша.
Найдена группа томов "vg0" с использованием типа метаданных lvm2

# vgchange -а у
Дескриптор файла 8 (канал: [270576]) просочился при вызове vgchange. Родительский PID 15357: Баш
11 логических томов в группе томов "vg0" теперь активны

И все логические тома появились.Следующими шагами было сделать виртуальную машину основной, включить ее и запустить виртуальную машину:

# drbdadm первичный r6
# drbdadm до r6
# virsh запустить виртуальную машину

И все стало нормально работать.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.