База знаний VMmanager
Режим фокусировки

Ошибка создания ВМ: failed to create linux AIO

В статье используются следующие термины:

Проблема

Новые виртуальные машины (ВМ) не создаются на узлах кластера с Astra Linux SE 1.8.1 и 1.8.5. При создании ВМ возникает ошибка:

Unable to use native AIO: failed to create linux AIO

Причина

Система исчерпала лимит дескрипторов асинхронного ввода-вывода (AIO).

Диагностика

Чтобы подтвердить причину:

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Проверьте текущий лимит AIO:
    sudo sysctl fs.aio-max-nr
  3. Проверьте текущее использование дескрипторов:
    sudo cat /proc/sys/fs/aio-nr
  4. Сравните полученные значения. Если текущее использование (значение aio-nr из п.3) приближается к лимиту (значение aio-max-nr из п.2) или равно ему, лимит исчерпан.

Решение

Увеличьте количество доступных AIO-дескрипторов. Рекомендуется в качестве безопасного стартового значения использовать 2097152.

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

Постоянное решение (сохраняется после перезагрузки узла кластера)

  1. Откройте файл /etc/sysctl.conf в режиме редактирования.
  2. Добавьте в конец файла строку:
    fs.aio-max-nr = 2097152
  3. Примените изменения:
    sudo sysctl -p
  4. Повторите попытку создания ВМ.

Временное изменение (работает до перезагрузки узла кластера)

  1. Выполните команду:
    sudo sysctl -w fs.aio-max-nr=2097152

Альтернативное решение

Если увеличение лимита невозможно, измените режим AIO в настройках диска ВМ:

  1. Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
  2. Определите внутреннее имя целевой ВМ:
    virsh list --all | grep <название_ВМ>
    Пример вывода
    virsh list --all | grep testtest
    460   5450_testtest    running

    Пояснения:

    • testtest — название ВМ;
    • 5450_testtest — внутреннее имя ВМ.
  3. Откройте конфигурацию ВМ для редактирования:
    sudo virsh edit <внутреннее_имя_ВМ>
  4. Найдите в XML-файле секцию <disk>, которая относится к нужному диску.
    Пример строки
    <driver name='qemu' type='raw' io='native'/>
  5. Измените параметр io='native' на io='threads' или io='io_uring':
    Пример изменённой секции
    <driver name='qemu' type='raw' io='threads'/>
  6. Сохраните изменения и выйдите из редактора.
Может быть полезно