Доступ к Intel Software RAID (vROC) на KVM-госте (Debian) с хоста Red Hat

Вопрос или проблема

У меня настроен Intel Software RAID (Intel® VROC) на моем хост-машине с Red Hat, и я хотел бы получить доступ к его статусу и т.д. в гостевой виртуальной машине KVM на базе Debian.

[root@localhost ~]# mdadm --detail-platform
mdadm: возможности imsm не найдены для контроллера: /sys/devices/pci0000:00/0000:00:17.0 (тип SATA)
mdadm: возможности imsm не найдены для контроллера: /sys/devices/pci0000:00/0000:00:19.0 (тип SATA)
      Платформа : Intel(R) Virtual RAID on CPU
       Версия : 8.5.0.1096
   Уровни RAID : raid0 raid1 raid10
   Размеры чанков : 4k 8k 16k 32k 64k 128k
   2TB тома : поддерживается
     2TB диски : поддерживается
     Максимум дисков : 96
   Максимум томов : 2 на массив, 24 на контроллер
NVMe от сторонних производителей : поддерживается
Контроллер ввода/вывода : /sys/devices/pci0000:9a/0000:9a:00.5 (VMD)
NVMe под VMD : /dev/nvme0n1 (S64FNN0X507593)
                 Шифрование(Способность|Статус): SED|Несшифрованный
NVMe под VMD : /dev/nvme2n1 (S64FNN0X507591)
                 Шифрование(Способность|Статус): SED|Несшифрованный
NVMe под VMD : /dev/nvme1n1 (S64FNN0X507583)
                 Шифрование(Способность|Статус): SED|Несшифрованный
Контроллер ввода/вывода : /sys/devices/pci0000:c6/0000:c6:00.5 (VMD)


[root@localhost ~]# sudo mdadm --detail /dev/md126
/dev/md126:
         Контейнер : /dev/md/imsm, член 0
        Уровень RAID : raid1
        Размер массива : 890806272 (849.54 GiB 912.19 ГБ)
     Размер используемого устройства : 890806272 (849.54 GiB 912.19 ГБ)
      Устройства RAID : 2
     Всего устройств : 2

             Состояние : активное
    Активные устройства : 2
   Рабочие устройства : 2
    Неправильные устройства : 0

Политика一致ности : resync


              UUID : 991e034f:faaee5eb:fc8c7c50:8482898a
    Номер   Главный   Второстепенный   RaidDevice Состояние
       1     259        0        0      активное синхронизировано   /dev/nvme0n1
       0     259        2        1      активное синхронизировано   /dev/nvme1n1

Хотя я понимаю, что могу использовать PCI passthrough, чтобы напрямую предоставить контроллер RAID гостю, меня беспокоит потеря доступа к RAID с хоста.

Один из подходов, который я рассматривал, – это использование общего доступа к файлам для выгрузки всех необходимых данных RAID в общий файл, который затем может быть смонтирован виртуальной машиной. Однако этот метод не кажется достаточно гибким для моих нужд, так как после перезагрузки виртуальной машины мне нужно будет вручную перемонтировать файл. Я также предпочитаю не добавлять записи монтирования в /etc/fstab виртуальной машины.

Существует ли лучший способ достичь этого?

Ответ или решение

Доступ к программному RAID Intel (vROC) с KVM-гостя на Debian из Red Hat Host

В вашей ситуации необходимо установить доступ к состоянию программного RAID Intel (vROC), настроенному на хосте Red Hat, из виртуальной машины Debian, работающей в KVM. Давайте рассмотрим несколько подходов к решению этой задачи, избегая недостатков, связанных с прямой передачи контроллера RAID (PCI passthrough) и использования файлового шары.

1. Использование Virtio для передачи данных

Virtio — это стандартный интерфейс виртуализации, который позволяет совместно использовать устройства между хостом и гостем. Вы можете установить виртуальный блок-устройство, которое будет предоставлять необходимую информацию о RAID.

  • Шаг 1: Установка необходимого программного обеспечения

    Убедитесь, что у вас установлен пакет virtio на хосте и в гость (Debian). Это можно сделать путем установки соответствующих модулей.

  • Шаг 2: Конфигурация виртуального устройства

    Используйте команду virsh или графический интерфейс, чтобы создать виртуальное блок-устройство, которое будет направлено на файл, в который вы будете записывать статус вашего RAID.

virsh attach-disk <vm_name> /path/to/raid-status.img vdb --driver qcow2 --subdriver raw --persistent

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

2. Использование интеграции с Web API

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

  • Шаг 1: Настройка API

    Настройте доступ к API через curl или другой инструмент в Debian, который будет запрашивать информацию о RAID.

  • Шаг 2: Создайте скрипт для автоматизации

    Создайте скрипт на языке типа Python или Bash, который будет выполнять запросы к API, запрашивать информацию и сохранять ее в файл или выводить прямо в терминал. Вы можете планировать его выполнение с помощью cron.

# Пример простого скрипта на Bash
#!/bin/bash
curl http://<raid-controller-ip>/api/status > /mnt/raid-status.json

3. Использование SSH для внешней проверки

Если доступ к информации через API отсутствует, вы можете использовать SSH для доступа к хосту из гостя, чтобы выполнять команды mdadm и считывать информацию о RAID.

  • Шаг 1: Настройка SSH-доступа

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

  • Шаг 2: Создайте скрипт для выполнения команд

Создайте Bash-скрипт на гость, который будет подключаться к хосту и выполнять команды mdadm для получения состояния RAID.

ssh user@host 'mdadm --detail /dev/md126' > /mnt/raid-status.txt

Заключение

Каждый из представленных методов имеет свои преимущества в зависимости от ваших конкретных требований и уровня контроля, который вы хотите поддерживать между хостом и гостем. Первая опция с использованием Virtio обеспечивает более тесную интеграцию и удобную работу с RAID без существенно дополнительных настроек, в то время как варианты с API и SSH предоставляют гибкость и простоту использования.

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

Оцените материал
Добавить комментарий

Капча загружается...