В статье используются следующие термины:
Проблема
Новые виртуальные машины (ВМ) не создаются на узлах кластера с Astra Linux SE 1.8.1 и 1.8.5. При создании ВМ возникает ошибка:
Unable to use native AIO: failed to create linux AIOПричина
Система исчерпала лимит дескрипторов асинхронного ввода-вывода (AIO).
Диагностика
Чтобы подтвердить причину:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Проверьте текущий лимит AIO:
sudo sysctl fs.aio-max-nr - Проверьте текущее использование дескрипторов:
sudo cat /proc/sys/fs/aio-nr - Сравните полученные значения. Если текущее использование (значение
aio-nrиз п.3) приближается к лимиту (значениеaio-max-nrиз п.2) или равно ему, лимит исчерпан.
Решение
Увеличьте количество доступных AIO-дескрипторов. Рекомендуется в качестве безопасного стартового значения использовать 2097152.
Для выполнения инструкции подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
Постоянное решение (сохраняется после перезагрузки узла кластера)
- Откройте файл /etc/sysctl.conf в режиме редактирования.
- Добавьте в конец файла строку:
fs.aio-max-nr = 2097152 - Примените изменения:
sudo sysctl -p - Повторите попытку создания ВМ.
Временное изменение (работает до перезагрузки узла кластера)
- Выполните команду:
sudo sysctl -w fs.aio-max-nr=2097152
Альтернативное решение
Если увеличение лимита невозможно, измените режим AIO в настройках диска ВМ:
- Подключитесь к узлу кластера по SSH. Подробнее о подключении по SSH см. в статье Настройка рабочего места.
- Определите внутреннее имя целевой ВМ:
virsh list --all | grep <название_ВМ>Пример выводаvirsh list --all | grep testtest 460 5450_testtest runningПояснения:
testtest— название ВМ;5450_testtest— внутреннее имя ВМ.
- Откройте конфигурацию ВМ для редактирования:
sudo virsh edit <внутреннее_имя_ВМ> - Найдите в XML-файле секцию <disk>, которая относится к нужному диску.
Пример строки<driver name='qemu' type='raw' io='native'/> - Измените параметр
io='native'наio='threads'илиio='io_uring':
Пример изменённой секции<driver name='qemu' type='raw' io='threads'/> - Сохраните изменения и выйдите из редактора.
Может быть полезно
Связанные статьи: